private void GetEmcosArchivesForSubstations() { EmcosSiteWrapperApp.LogInfo("Получение архивных данных"); Status = State.Busy; DialogMessage = "Получение архивных данных ..."; EmcosSiteWrapperApp.LogInfo("Сохранение текущей сессии"); Repository.SaveBackup(); _cts = new System.Threading.CancellationTokenSource(); IsCancel = false; IsGettingData = true; try { var task = EmcosSiteWrapper.Instance.ExecuteAction(_cts, GetSubstationsDaysArchives); task.ContinueWith((s) => { EmcosSiteWrapperApp.LogInfo("Выполнено получение архивных данных"); try { DispatcherExtensions.InUi(() => ShowDialogInfo("Выполнено. ")); IsGettingData = false; Status = State.Ready; /*RaisePropertyChanged("HasData"); * RaisePropertyChanged("SubstationsTree"); * RaisePropertyChanged("WindowTitle");*/ } catch (Exception ex) { EmcosSiteWrapperApp.LogError("Получение данных. Ошибка - " + ex.Message); } }, System.Threading.Tasks.TaskContinuationOptions.OnlyOnRanToCompletion); task.ContinueWith((s) => { EmcosSiteWrapperApp.LogInfo("Прервано получение архивных данных"); ShowDialogWarning("Прервано. "); IsGettingData = false; Status = State.Ready; /*RaisePropertyChanged("HasData"); * RaisePropertyChanged("SubstationsTree"); * RaisePropertyChanged("WindowTitle");*/ }, System.Threading.Tasks.TaskContinuationOptions.OnlyOnFaulted); } catch (Exception ex) { EmcosSiteWrapperApp.LogError("Получение архивных данных. Ошибка - " + ex.Message); ShowDialogError("Произошла ошибка.\n" + ex.Message, Title); IsGettingData = false; } }
public BalanceViewModel(System.Windows.Window window) : base(window as IWindowWithDialogs) { if (window == null) { return; } try { if (System.IO.Directory.Exists(REPORTS_FOLDER) == false) { Directory.CreateDirectory(REPORTS_FOLDER); } } catch (System.IO.IOException ex) { _callBackAction(ex); } #region Добавление обработчиков окна if (window != null) { window.Closed += (s, e) => { if (Session == null) { return; } // сохранение сессии if (Repository.Save()) { EmcosSiteWrapperApp.LogInfo("Сессия сохранена"); } else { EmcosSiteWrapperApp.LogInfo("Сессия не сохранена"); } } } ; if (window != null) { window.Loaded += (s, e) => { if (Status == State.Busy) { ShowDialogWaitingScreen("Подготовка данных ...."); } if (Session == null && Repository.SessionsInfoList.Count == 0) { ShowDialogInfo(string.Format("В папке '{0}' не обнаружены сессии (файлы с расширением '{1}').\nБудет создана новая сессия.", Repository.SESSIONS_FOLDER, Repository.SESSION_FILE_EXTENSION), Title, () => Repository.CreateEmptySession()); } else { if (Session == null) { SelectSessionCommand.Execute(s); } else { Status = State.Ready; } } } } ; #endregion // инициализация репозитория _repository.Loaded += Repository_LoadedOrSaved; _repository.Saved += Repository_LoadedOrSaved; _repository.PropertyChanged += Repository_PropertyChanged; _repository.Init(); // Инициализация команд InitCommands(window); _timer.Elapsed += Timer_Elapsed; } ~BalanceViewModel() { if (_repository != null) { _repository.Loaded -= Repository_LoadedOrSaved; _repository.Saved -= Repository_LoadedOrSaved; _repository.PropertyChanged -= Repository_PropertyChanged; } if (_session != null) { _session.PropertyChanged -= Session_PropertyChanged; } }
public BalanceView() { EmcosSiteWrapperApp.LogInfo("Инициализация BalanceView"); InitializeComponent(); }