static public FixedList <ProjectItem> CreateActivitiesFromModel(Activity activityModel, Project project, DateTime eventDate, ProjectItem insertionPoint, TreeItemInsertionRule insertionRule) { Assertion.Require(activityModel, "activityModel"); Assertion.Require(project, "project"); Assertion.Require(insertionPoint, "insertionPoint"); WhatIfResult result = ModelingServices.WhatIfCreatedFromEvent(activityModel, project, eventDate); if (result.HasErrors) { throw result.GetException(); } ProjectItemData.ResetProcessID(); StoreChanges(result); ProjectItemData.ClearProcessID(); if (result.StateChanges.Count > 0) { if (!insertionPoint.IsEmptyInstance && insertionRule != TreeItemInsertionRule.AsTreeRootAtEnd) { project.MoveTo(result.StateChanges[0].ProjectItem, insertionRule, insertionPoint); } else if (insertionPoint.IsEmptyInstance && (insertionRule == TreeItemInsertionRule.AsTreeRootAtStart || insertionRule == TreeItemInsertionRule.AsTreeRootAtEnd)) { project.MoveTo(result.StateChanges[0].ProjectItem, insertionRule, insertionPoint); } } return(project.GetItems()); }
private WhatIfResult GetNewModelResult() { return(ModelingServices.WhatIfCreatedFromEvent(this.ProcessDefinitionRootItem, this.Project, this.RootProjectItem.Deadline)); }