Exemplo n.º 1
0
            public static CasePlanItemInstanceResult ToDto(CaseEltInstance casePlanItemInstance)
            {
                string stateStr = null, formId = null;

                if (casePlanItemInstance.IsTaskOrStage())
                {
                    stateStr = casePlanItemInstance.TakeStageState == null ? null : Enum.GetName(typeof(TaskStageStates), casePlanItemInstance.TakeStageState);
                }

                if (casePlanItemInstance.IsMilestone())
                {
                    stateStr = casePlanItemInstance.MilestoneState == null ? null : Enum.GetName(typeof(MilestoneEventStates), casePlanItemInstance.MilestoneState);
                }

                if (casePlanItemInstance.Type == CasePlanElementInstanceTypes.HUMANTASK)
                {
                    formId = casePlanItemInstance.GetFormId();
                }

                return(new CasePlanItemInstanceResult
                {
                    Id = casePlanItemInstance.Id,
                    Name = casePlanItemInstance.Name,
                    NbOccurrence = casePlanItemInstance.NbOccurrence,
                    EltId = casePlanItemInstance.EltId,
                    State = stateStr,
                    FormId = formId,
                    Type = Enum.GetName(typeof(CasePlanElementInstanceTypes), casePlanItemInstance.Type).ToUpperInvariant(),
                    TransitionHistories = casePlanItemInstance.TransitionHistories.Select(_ => TransitionHistoryResult.ToDto(_)).ToList()
                });
            }
        private bool IsElementCompleted(CaseEltInstance planElementInstance)
        {
            if (planElementInstance.IsTaskOrStage() && (planElementInstance.TakeStageState == TaskStageStates.Completed ||
                                                        planElementInstance.TakeStageState == TaskStageStates.Terminated ||
                                                        planElementInstance.TakeStageState == TaskStageStates.Disabled))
            {
                return(true);
            }

            if (planElementInstance.IsMilestone() && (planElementInstance.MilestoneState == MilestoneEventStates.Completed ||
                                                      planElementInstance.MilestoneState == MilestoneEventStates.Terminated))
            {
                return(true);
            }

            return(false);
        }