private void UserControl_Loaded(object sender, RoutedEventArgs e) { _selectedReport = null; try { _selectedReport = Utils.Base64StringToObject <Model.EmcosReport>(Properties.Settings.Default.SelectedReport); } catch { } if (_selectedReport == null) { App.ShowWarning(Strings.ReportNotSpecified); _onClosed(); } _cts = new CancellationTokenSource(); var token = _cts.Token; IsGettingData = true; IsCompleted = false; var task = Task.Factory.StartNew(() => Go(), token); task.ContinueWith((t) => { _onCanceled(); }, TaskContinuationOptions.OnlyOnCanceled); task.ContinueWith((t) => { _onFaulted(t.Exception); }, TaskContinuationOptions.OnlyOnFaulted); task.ContinueWith((t) => { IsCompleted = true; IsGettingData = false; System.Media.SystemSounds.Asterisk.Play(); App.Log("Завершено"); TMPApplication.DispatcherExtensions.InUi(() => App.Current.MainWindow.Flash()); }, TaskContinuationOptions.OnlyOnRanToCompletion); }
private async Task <bool> InitReportsAsync() { int groupID = Properties.Settings.Default.SelectedReportsGroupId; var list = new List <Model.EmcosReport>(); try { string paramGetReports = string.Format("callerUID=INIT_ID_1/RP_TYPE_ID_{0}&instance=_level1.scene.spContentHolder6.PANEL_RP_TREE.spContentHolder0.RP_TREE.spContentHolder&RP_PUBLIC=1&RP_TYPE_ID={0}&__const=TYPE=RP&datablock=RP&action=GET", groupID); string url = @"{0}scripts/reports.asp"; string data = await ServiceHelper.ExecuteFunctionAsync(ServiceHelper.MakeRequestAsync, url, paramGetReports, true, (answer) => ServiceHelper.DecodeAnswer(answer)); //string data = "&RP_ID_0=679&RP_TYPE_ID_0=72&RP_NAME_0=Выборка точек по группе&RP_PUBLIC_0=1&RP_DESCRIPTION_0=&RPF_ID_0=1&RP_LOG_ENABLED_0=0&USER_NAME_0=System user EMCOS&TYPE_0=RP&RP_ID_1=675&RP_TYPE_ID_1=72&RP_NAME_1=Для расчета балансов ПС до 35кВ&RP_PUBLIC_1=1&RP_DESCRIPTION_1=&RPF_ID_1=2&RP_LOG_ENABLED_1=0&USER_NAME_1=Щелухин Д.Д.&TYPE_1=RP&RP_ID_2=698&RP_TYPE_ID_2=72&RP_NAME_2=Для расчета балансов ПС 35-770кВ&RP_PUBLIC_2=1&RP_DESCRIPTION_2=&RPF_ID_2=2&RP_LOG_ENABLED_2=1&USER_NAME_2=System user EMCOS&TYPE_2=RP&result=0&recordCount=3"; if (data.Contains("result=0") == false) { return(false); } var records = Utils.ParseRecords(data); if (records == null) { return(false); } foreach (var nvc in records) { if (nvc.Get("TYPE") == Model.EmcosReport.TYPE) { Model.EmcosReport element = new Model.EmcosReport(); for (int i = 0; i < nvc.Count; i++) { #region азбор полей int intValue = 0; switch (nvc.GetKey(i)) { case "RP_ID": int.TryParse(nvc[i], out intValue); element.RP_ID = intValue; break; case "RP_TYPE_ID": int.TryParse(nvc[i], out intValue); element.RP_TYPE_ID = intValue; break; case "RP_NAME": element.RP_NAME = nvc[i]; break; case "RP_PUBLIC": element.RP_PUBLIC = nvc[i] == "1"; break; case "RP_DESCRIPTION": element.RP_DESCRIPTION = nvc[i]; break; case "RPF_ID": int.TryParse(nvc[i], out intValue); element.RPF_ID = intValue; break; case "RP_LOG_ENABLED": element.RP_LOG_ENABLED = nvc[i] == "1"; break; case "USER_NAME": element.USER_NAME = nvc[i]; break; } #endregion } list.Add(element); } } } catch { return(false); } ReportsList = list; /*var selected = Properties.Settings.Default.SelectedReport; * Model.EmcosReport r = App.Base64StringToObject<Model.EmcosReport>(selected); * if (r != null) * cmbReports.SelectedItem = list.Where(i => i.RP_ID == r.RP_ID).FirstOrDefault();*/ return(true); }