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