Ejemplo n.º 1
0
        private void ShowItemDetails(Model.Balance.IBalanceItem item)
        {
            if (item == null)
            {
                return;
            }
            var biv = new BalanceItemView(_balance.Period);

            biv.Owner         = this;
            biv.ShowInTaskbar = false;
            biv.DataContext   = item;
            biv.ShowDialog();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Получение архивных данных по указанному элементу
        /// </summary>
        /// <param name="item">Элемент баланса подстанции</param>
        /// <param name="startDate">Начальная дата</param>
        /// <param name="endDate">Конечная дата</param>
        /// <param name="cts">Маркер отмены</param>
        public static void GetBalanceItemArchiveData(Model.Balance.IBalanceItem item, DateTime startDate, DateTime endDate, System.Threading.CancellationTokenSource cts)
        {
            bool hasMonthData = HasDateIntervalMonth(startDate, endDate);

            Action <Model.Balance.IDirectedEnergy> getDirectedEnergyValuesForBalanceItem = null;

            getDirectedEnergyValuesForBalanceItem = (Model.Balance.IDirectedEnergy energy) =>
            {
                if (cts.IsCancellationRequested)
                {
                    return;
                }
                IEnumerable <Model.ArchData> data_days, data_month = null;
                // энергия за сутки
                data_days = GetPointArchive(item.Id, item.Name, startDate, endDate, energy.DayMlParam);
                // разбор данных
                energy.DaysValues = ParseArchiveData(data_days);

                // энергия за месяц
                if (hasMonthData)
                {
                    data_month = GetPointArchive(item.Id, item.Name, startDate, endDate, energy.MonthMlParam);
                    if (data_month == null || data_month.Count() != 1)
                    {
                        TMPApplication.TMPApp.LogInfo(String.Format("getDirectedEnergyValuesForBalanceItem - данные за месяц. Ошибка в данных (data_month == null || data_month.Count() != 1). Точка: ID={0}, NAME={1}", item.Id, item.Name));
                    }
                    // разбор данных
                    energy.MonthValue = ParseArchiveData(data_month).FirstOrDefault();
                }
            };
            try
            {
                item.Status = Model.DataStatus.Processing;
                getDirectedEnergyValuesForBalanceItem(item.ActiveEnergy.Plus);
                getDirectedEnergyValuesForBalanceItem(item.ActiveEnergy.Minus);
                getDirectedEnergyValuesForBalanceItem(item.ReactiveEnergy.Plus);
                getDirectedEnergyValuesForBalanceItem(item.ReactiveEnergy.Minus);
            }
            catch (Exception e)
            {
                item.Status = Model.DataStatus.Processed;
                TMPApplication.TMPApp.LogInfo(String.Format("GetBalanceItemArchiveData. Ошибка получения данных по точке: ID={0}, NAME={1}. Сообщение: {2}",
                                                            item.Id, item.Name, e.Message));
            }
            finally
            {
                item.Status = Model.DataStatus.Processed;
            }
        }