예제 #1
0
 /// <summary>
 /// Создать паспорт огнетушителя в приложении Word.
 /// </summary>
 /// <param name="ex">Огнетушитель.</param>
 public void CreatePassportExtinguisher(Extinguisher ex)
 {
     ReplaceBookmark("Number", ex.ToString() + "\t");
     ReplaceBookmark("DateCommissioning", ex.Histories.First().DateChange.ToShortDateString() + "\t");
     ReplaceBookmark("DateCreate", ex.DateProduction.ToShortDateString() + "\t");
     ReplaceBookmark("Location", ex.FireCabinet.ToString() + "\t");
     ReplaceBookmark("Manufacturer", ex.KindExtinguisher.Manufacturer + "\t");
     ReplaceBookmark("PlantNumber", "№ " + ex.SerialNumber + "\t");
     ReplaceBookmark("Specie", ex.KindExtinguisher.Name + "\t");
     ReplaceBookmark("WeightOTV", ex.KindExtinguisher.WeightExtinguishingAgent + " кг.\t");
     FillTable(ex);
     word.Visible = true;
 }
예제 #2
0
        /// <summary>
        /// Заполнить таблицу в паспорте огнетушителя.
        /// </summary>
        /// <param name="ex">Огнетушитель.</param>
        private void FillTable(Extinguisher ex)
        {
            var table = workBook.Tables[1];
            int row   = ROW_FILL_START;

            //Учитывать ли время.
            var modeTime = Properties.Settings.Default.UseTime;
            Func <History, DateTime> datePicker;

            if (modeTime)
            {
                datePicker = h => h.DateChange;
            }
            else
            {
                datePicker = h => h.DateChange.Date;
            }

            var dates = ex.Histories.Select(datePicker).Distinct();

            foreach (var date in dates)
            {
                table.Rows.Add();
                var tempStatus = "";

                var historiesOnDate = ex.HistoriesOnDate(date);///////////////

                foreach (var str in historiesOnDate)
                {
                    if (str.Property == "Weight")
                    {
                        table.Cell(row, column["Weight"]).Range.Text = str.Value + "кг.";
                    }
                    else if (str.Property == "Pressure")
                    {
                        table.Cell(row, column["Pressure"]).Range.Text = str.Value + "кгс/см2";
                    }
                    else if (str.Property == "IsDented" && str.Value == "True")
                    {
                        tempStatus += "Поврежден корпус\n";
                    }
                    else if (str.Property == "IsPaintDamage" && str.Value == "True")
                    {
                        tempStatus += "Повреждена краска\n";
                    }
                    else if (str.Property == "IsHandleDamage" && str.Value == "True")
                    {
                        tempStatus += "Повреждено ЗПУ\n";
                    }
                    else if (str.Property == "IsHose" && str.Value == "False")
                    {
                        tempStatus += "Отсутствует шланг\n";
                    }
                    else if (str.Property == "IsPressureGaugeFault" && str.Value == "True")
                    {
                        tempStatus += "Поврежден манометр\n";
                    }
                    else if (str.Property == "IsLabelDamage" && str.Value == "True")
                    {
                        tempStatus += "Повреждена этикетка\n";
                    }
                }

                table.Cell(row, column["Date"]).Range.Text = date.ToShortDateString() + "г.";


                if (tempStatus == "")
                {
                    table.Cell(row, column["Status"]).Range.Text = "Норма";
                }
                else
                {
                    table.Cell(row, column["Status"]).Range.Text = tempStatus.Trim();
                }
                row++;
            }
        }
예제 #3
0
 /// <summary>
 /// Возвращает коллекцию изменений огнетушителя на дату.
 /// </summary>
 /// <param name="ex">Огнетушитель.</param>
 /// <param name="dateTime">Дата.</param>
 public IEnumerable <History> GetLastHistoriesOnDate(Extinguisher ex, DateTime dateTime)
 {
     return(ex.Histories.Where(h => h.DateChange <= dateTime).GroupBy(h => h.Property).Select(g => g.Last()));
 }