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; } } }
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; }