private StepRelation CreateDependencyAsStepRelation(ProjectItem projectItem, ActivityModel formerModel) { var data = new StepRelationDataHolder(); data.Accessibility = "Private"; data.DrivenMode = "Manual"; data.DueOnRule = ConvertDueOnRule(formerModel); if (EmpiriaString.IsBoolean(formerModel.DueOnRuleAppliesForAllContracts) && !EmpiriaString.ToBoolean(formerModel.DueOnRuleAppliesForAllContracts)) { data.ExecutionContext = ConvertExecutionContext(projectItem); } data.ExtensionData = ConvertRelationExtensionData(formerModel); data.FlowControl = "Sequence"; data.RelationKind = "Dependency"; data.SourceId = projectItem.Id; data.TargetId = formerModel.DueOnControllerId; data.WorkSequenceKind = "FinishToFinish"; data.Save(); return(StepRelation.Parse(data.UID)); }
private StepDataHolder MapToStepDataHolder(StepType stepType, ProjectItem projectItem, ActivityModel formerModel) { var data = new StepDataHolder(); data.Accessibility = "Private"; data.DrivenMode = "Manual"; data.EstimatedDuration = ConvertEstimatedDuration(formerModel); data.ExecutionContext = ConvertExecutionContext(projectItem); data.ExtensionData = ConvertExtensionData(formerModel); data.IsOptional = !formerModel.IsMandatory; data.Notes = projectItem.Notes; data.OldProjectObjectId = projectItem.Id; if (formerModel.DueOnControllerId > 0 && EmpiriaString.IsInteger(formerModel.DueOnTerm)) { StepRelation relation = CreateDependencyAsStepRelation(projectItem, formerModel); var dueOn = Activity.Parse(formerModel.DueOnControllerId); data.DataModels = $"{formerModel.DueOnTerm} {formerModel.DueOnTermUnit} {formerModel.DueOnCondition} " + $"{dueOn.Name} ({dueOn.Template.ActivityType}) [{formerModel.DueOnControllerId}]"; } if (formerModel.IsPeriodic) { data.PeriodicityRule = formerModel.PeriodicRule.ToJson(); } data.ProcedureEntityId = formerModel.EntityId; data.ProcedureId = formerModel.ProcedureId; data.StepKind = formerModel.ActivityType; data.StepName = projectItem.Name.Trim(); data.StepPosition = 0; data.StepType = stepType; data.Tags = projectItem.Tag; data.Themes = projectItem.Theme; return(data); }