private void dgValues_LoadingRow(object sender, DataGridRowEventArgs e)
        {
            StatisticValue sv = (StatisticValue)e.Row.DataContext;

            if (sv.percentage < 1 && sv.percentage > 0)
            {
                e.Row.Background = Brushes.Gold;
            }
            else
            {
                e.Row.Background = Brushes.White;
            }
        }
        public void CalculateValues()
        {
            sampleValues = GetSampleValues(currentDepartment);
            statList     = new List <StatisticValue>();
            statList.Add(new StatisticValue("Поездов расформировано", sampleValues.Count));
            statList.Add(new StatisticValue("в т.ч. груженых", GetCargoTrainsCount()));
            statList.Add(new StatisticValue("Грузооборот эксплуатационный, т-км", GetPL()));
            statList.Add(new StatisticValue("Перевезено грузов, т", GetSumP()));
            statList.Add(new StatisticValue("Маршрутная скорость, км/ч", GetAverageTrainSpeed()));
            StatisticValue averageWeight = new StatisticValue("Средний вес поезда, т", GetAverageTrainWeight());

            statList.Add(averageWeight);
            StatisticValue sl = new StatisticValue("Среднесуточный пробег локомотива, км", GetSL());

            statList.Add(sl);
            statList.Add(new StatisticValue("Производительность локомотива, т-км", sl.value * averageWeight.value));
        }
        // Поиск и расчет плановых значений
        public bool SetPlanValues()
        {
            if (statList == null)
            {
                throw new Exception("Плановые показатели не могут быть рассчитаны до определения фактических значений");
            }
            // Период выходит за рамки одного отчетного месяца
            if (dtFromTime.AddDays(1).Month != dtToTime.Month && dtFromTime.Year != dtToTime.Year)
            {
                return(false);
            }
            planPeeker = new PlansPeeker();
            try
            {
                float[] planValues = planPeeker.getPlan(dtToTime);

                int duration = (dtToTime - dtFromTime).Days;

                for (int i = 0; i < statList.Count; i++)
                {
                    StatisticValue statisticValue = statList.ElementAt(i);
                    statisticValue.plan = (planValues[i] / (DateTime.DaysInMonth(dtToTime.Year, dtToTime.Month))) * duration;
                    if (statisticValue.value != 0)
                    {
                        statisticValue.percentage = (statisticValue.value / statisticValue.plan);
                    }
                }
                savePlanMode = planPeeker.updatePlan;
                return(true);
            }
            catch (ArgumentException ex)
            {
                savePlanMode = planPeeker.addPlan;
                throw ex;
            }
        }