public IssueMilestonesViewModel(Issue issue) { CompositionInitializer.SatisfyImports(this); mIssue = issue; SelectButton = new DelegateCommand<object>(SelectButtonHandler, CanSelect); AddButton = new DelegateCommand<object>(AddMilestoneCommandHandler, CanAdd); EditButton = new DelegateCommand<object>(EditButtonHandler, CanModify); DeleteButton = new DelegateCommand<object>(DeleteMilestoneHandler, CanDelete); UpButtonCommand = new DelegateCommand<object>(UpButtonCommandHandler, CanModify); DownButtonCommand = new DelegateCommand<object>(DownButtonCommandHandler, CanModify); CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); cmsWebServiceClient.GetIssueMilestonesCompleted += (s1, e1) => { Milestones = new ObservableCollection<IssueMilestone>(e1.Result); if (Milestones.Any()) MilestoneVarianceThreshold = Milestones[0].MilestoneVarianceThreshold; else { DatabaseLoader.GetIssueSettings().ContinueWith(getIssueFinancialSettingsTask => { CMS.UiFactory.StartNew(() => { MilestoneVarianceThreshold = (double)getIssueFinancialSettingsTask.Result.MilestoneVarianceThreshold; }); }); } //set up change dictionaries for collections. mIssue.ModifiedObjects.MilestonesModified = true; mDictionary = Utils.BuildDictionaryForCollection(mIssue.IssueMilestones.Select(x => x.Id).ToList()); mDictionaryDelays = new Dictionary<int, int>(); foreach (IssueMilestone milestone in mIssue.IssueMilestones) { milestone.PropertyChanged += (s3, e3) => { mHasMilestoneChanges = true; }; foreach (IssueMilestoneDelay delay in milestone.IssueMilestoneDelays) { delay.PropertyChanged += (s2, e2) => { mHasMilestoneDelayChanges = true; }; } mDictionaryDelays.AddRange(Utils.BuildDictionaryForCollection(milestone.IssueMilestoneDelays.Select(x => x.Id).ToList())); } SetAccumulatedDelayProperties(); RaisePropertyChanged("Milestones"); if (Loaded != null) { Loaded(); } }; cmsWebServiceClient.GetIssueMilestonesAsync(mIssue.Id); }
public void Reload() { CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); cmsWebServiceClient.GetIssueMilestonesCompleted += (s1, e1) => { Milestones = new ObservableCollection<IssueMilestone>(e1.Result); mIssue.ModifiedObjects.MilestonesModified = true; mDictionary = Utils.BuildDictionaryForCollection(mIssue.IssueMilestones.Select(x => x.Id).ToList()); mDictionaryDelays = new Dictionary<int, int>(); foreach (IssueMilestone milestone in mIssue.IssueMilestones) { mDictionaryDelays.AddRange(Utils.BuildDictionaryForCollection(milestone.IssueMilestoneDelays.Select(x => x.Id).ToList())); } SetAccumulatedDelayProperties(); RaisePropertyChanged("Milestones"); }; cmsWebServiceClient.GetIssueMilestonesAsync(mIssue.Id); }