Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }