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(); }
/// <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; } }