public AddIssueTypeViewModel(List<IssueType> selectedIssueTypes) { if (DesignerProperties.IsInDesignTool) { return; } mSelectedIssueTypes = selectedIssueTypes; CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); cmsWebServiceClient.GetIssueTypesCompleted += (s1, e1) => { IssueTypes = e1.Result; foreach (var issueType in IssueTypes) { if ((from x in mSelectedIssueTypes where x.Id == issueType.Id select x).FirstOrDefault() != null) { issueType.Checked = true; } } mIssueTypesLoaded = true; RaiseLoaded(); }; cmsWebServiceClient.GetIssueTypesAsync(); OkButtonCommand = new DelegateCommand<object>(OkButtonHandler, CanExecuteOkButtonHandler); CancelButtonCommand = new DelegateCommand<object>(CanelButtonHandler, CanExecuteOkButtonHandler); }
public static Task LoadIssueTypesCache() { var task = new TaskCompletionSource<bool>(); if (CMS.Cache.IssueTypes == null) { CMS.Cache.IssueTypes = new ObservableCollection<IssueType>(); var cee = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); DateTime now = DateTime.Now; System.Diagnostics.Debug.WriteLine("LoadIssueTypesCache First {0}", now.ToString("G")); //IssueTypes cee.GetIssueTypesCompleted += (s, e) => { CMS.Cache.IssueTypes = new ObservableCollection<IssueType>(e.Result.OrderBy(x => x.Ordinal)); var elapsed = DateTime.Now - now; System.Diagnostics.Debug.WriteLine("LoadIssueTypesCache: {0}", elapsed.TotalSeconds); task.SetResult(true); }; cee.GetIssueTypesAsync(); } else { task.SetResult(true); return task.Task; //Already loaded } return task.Task; }
private void LoadIssueTypes(NodeView expandedNode) { CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); EventHandler<GetIssueTypesCompletedEventArgs> fetchCompleted = null; fetchCompleted = (s, eventArgs) => { List<IssueType> issueTypes = eventArgs.Result; foreach (IssueType issueType in issueTypes) { NodeView child = new NodeView(expandedNode) { Id = issueType.Id, Name = issueType.Name, Description = issueType.Description, IsActive = issueType.IsActive, Icon = "/CmsEquipmentDatabase;component/Images/Configuration.png", Type = NodeType.IssueTypeNode, HasChildren = true, SortField = issueType.Ordinal.ToString() }; expandedNode.Children.Add(child); cmsWebServiceClient.GetIssueTypesCompleted -= fetchCompleted; } expandedNode.Sort(); Utils.HideSpinner(expandedNode); }; cmsWebServiceClient.GetIssueTypesCompleted += fetchCompleted; cmsWebServiceClient.GetIssueTypesAsync(); }