示例#1
0
        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));
        }
示例#2
0
        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);
        }