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);
        }
Example #2
0
        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);
        }