public WhatIfResult OnComplete(ProjectItem projectItem, DateTime completedDate, bool addNewPeriodics) { Assertion.Require(projectItem, "projectItem"); this.whatIfResult = new WhatIfResult(projectItem, ProjectItemOperation.Complete); // Add root state change var stateChange = new ProjectItemStateChange(projectItem, ProjectItemOperation.Complete) { ActualEndDate = completedDate }; whatIfResult.AddStateChange(stateChange); // Update related UpdateRelatedProjectItemsDeadlines(projectItem, completedDate); if (addNewPeriodics) { var newPeriodicResult = ModelingServices.TryGetNextPeriodic(projectItem, completedDate); if (newPeriodicResult != null) { this.whatIfResult.AddStateChanges(newPeriodicResult.StateChanges); } } return(this.whatIfResult); }
static public WhatIfResult WhatIfReactivated(ProjectItem projectItem) { Assertion.Require(projectItem, "projectItem"); var whatIfResult = new WhatIfResult(projectItem, ProjectItemOperation.Reactivate); var stateChange = new ProjectItemStateChange(projectItem, ProjectItemOperation.Reactivate); whatIfResult.AddStateChange(stateChange); return(whatIfResult); }
private WhatIfResult GetWhatIfResultWithRootProjectItemBranch() { WhatIfResult result = new WhatIfResult(this.RootProjectItem, ProjectItemOperation.UpdateProcessChanges); FixedList <ProjectItem> currentActivities = this.RootProjectItem.GetBranch(); foreach (var projectItem in currentActivities) { var stateChange = new ProjectItemStateChange(projectItem, ProjectItemOperation.UpdateProcessChanges); result.AddStateChange(stateChange); } return(result); }