コード例 #1
0
ファイル: MainPage.xaml.cs プロジェクト: barrett2474/CMS2
        private void ProcessQueryString()
        {
            var cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint);
            string[] parameters = CMS.AppSetting.QueryString.Split('|');

            foreach (string parameter in parameters)
            {
                if (String.IsNullOrEmpty(parameter)) continue;

                string name = parameter.Split('=')[0];
                string valueString = parameter.Split('=')[1];

                switch (name.ToLower().Trim())
                {
                    case "issueid":
                        int value;

                        if (!Int32.TryParse(parameter.Split('=')[1], out value)) continue;

                        cmsWebServiceClient.GetQuickIssueCompleted += (s, e) =>
                        {
                            if (e.Result != null)
                            {
                                SetActiveNavigationPanel(CommonUtils.SecurityObjectEnum.Issue);

                                //Not the finas code you could find :(
                                //This is here to make sure we have Issue Cache loaded before we open an Issue from querystring
                                DispatcherTimer waithForIssueCacheTimer = new DispatcherTimer {Interval = TimeSpan.FromMilliseconds(500)};

                                waithForIssueCacheTimer.Tick += (sender, eventArgs) =>
                                {
                                    if (IssueTab.Content != null)
                                    {
                                        waithForIssueCacheTimer.Stop();
                                        OpenIssueTab(e.Result);
                                    }
                                };
                                waithForIssueCacheTimer.Start();

                            }
                        };
                        cmsWebServiceClient.GetQuickIssueAsync(value);
                        break;
                    case "controlsystem":

                        DatabaseLoader.GetQuickControlSystems(new EquipmentFilterObject{Name = valueString}).ContinueWith(e =>
                        {
                            if (e.Result != null && e.Result.Any())
                            {
                                SetActiveNavigationPanel(CommonUtils.SecurityObjectEnum.Control);
                                OpenControlSystemTab(e.Result[0]);
                            }
                        });
                        break;
                    case "electrical":
                        cmsWebServiceClient.GetQuickElectricalEquipmentByNameCompleted += (s, e) =>
                        {
                            if (e.Result != null)
                            {
                                SetActiveNavigationPanel(CommonUtils.SecurityObjectEnum.Electrical);
                                OpenTab(e.Result);
                            }
                        };
                        cmsWebServiceClient.GetQuickElectricalEquipmentByNameAsync(valueString);
                        break;
                    case "instrument":

                        int id;
                        if (int.TryParse(valueString, out id))
                        {
                            cmsWebServiceClient.GetInstrumentCompleted += (s, e) =>
                            {
                                SetActiveNavigationPanel(CommonUtils.SecurityObjectEnum.Instrument);
                                OpenTab(e.Result);
                            };
                            cmsWebServiceClient.GetInstrumentAsync(id);
                        }
                        else
                        {
                            cmsWebServiceClient.GetQuickInstrumentByNameCompleted += (s, e) =>
                            {
                                if (e.Result != null)
                                {
                                    SetActiveNavigationPanel(CommonUtils.SecurityObjectEnum.Instrument);
                                    OpenTab(e.Result);
                                }
                            };
                            cmsWebServiceClient.GetQuickInstrumentByNameAsync(valueString);
                        }
                        break;
                    case "mechanical":
                        cmsWebServiceClient.GetQuickMechanicalEquipmentByNameCompleted += (s, e) =>
                        {
                            if (e.Result != null)
                            {
                                SetActiveNavigationPanel(CommonUtils.SecurityObjectEnum.Mechanical);
                                OpenTab(e.Result);
                            }
                        };
                        cmsWebServiceClient.GetQuickMechanicalEquipmentByNameAsync(valueString);
                        break;
                    case "mobileplant":
                        cmsWebServiceClient.GetQuickMobilePlantByNameCompleted += (s, e) =>
                        {
                            if (e.Result != null)
                            {
                                SetActiveNavigationPanel(CommonUtils.SecurityObjectEnum.MobilePlant);
                                OpenTab(e.Result);
                            }
                        };
                        cmsWebServiceClient.GetQuickMobilePlantByNameAsync(valueString);
                        break;
                    case "pipe":
                        cmsWebServiceClient.GetQuickPipeByNameCompleted += (s, e) =>
                        {
                            if (e.Result != null)
                            {
                                SetActiveNavigationPanel(CommonUtils.SecurityObjectEnum.Pipe);
                                OpenTab(e.Result);
                            }
                        };
                        cmsWebServiceClient.GetQuickPipeByNameAsync(valueString);
                        break;

                    case "document":
                        cmsWebServiceClient.GetQuickDocumentByNameCompleted += (s, e) =>
                        {
                            if (e.Result != null)
                            {
                                SetActiveNavigationPanel(CommonUtils.SecurityObjectEnum.Document);
                                OpenTab(e.Result);
                            }
                        };
                        cmsWebServiceClient.GetQuickDocumentByNameAsync(valueString);

                        break;

                    case "docid":

                        int result;

                        if (int.TryParse(valueString, out result))
                        {
                            cmsWebServiceClient.GetQuickDocumentCompleted += (s, e) =>
                            {
                                if (e.Result != null)
                                {
                                    SetActiveNavigationPanel(CommonUtils.SecurityObjectEnum.Document);
                                    OpenTab(e.Result);
                                }
                            };
                            cmsWebServiceClient.GetQuickDocumentAsync(result);
                        }

                        break;
                }
            }
        }
コード例 #2
0
ファイル: DatabaseLoader.cs プロジェクト: barrett2474/CMS2
 public static Task<Instrument> GetInstrument(int equipmentId)
 {
     var task = new TaskCompletionSource<Instrument>();
     var cee = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint);
     cee.GetInstrumentCompleted += (s, e) => task.SetResult(e.Result);
     cee.GetInstrumentAsync(equipmentId);
     return task.Task;
 }