コード例 #1
0
        private static StageElementInstance BuildStage(string id, tStage stage, string casePlanInstanceId)
        {
            var planItems = BuildPlanItems(stage, casePlanInstanceId);
            var result    = new StageElementInstance
            {
                Id    = BaseCasePlanItemInstance.BuildId(casePlanInstanceId, stage.id, 0),
                Name  = stage.name,
                EltId = id
            };

            foreach (var planItem in planItems)
            {
                result.AddChild(planItem);
            }

            if (!result.ExitCriterions.Any() && stage.exitCriterion != null)
            {
                foreach (var exitCriteria in stage.exitCriterion)
                {
                    var sEntry = stage.sentry.First(s => s.id == exitCriteria.sentryRef);
                    result.ExitCriterions.Add(new Criteria(exitCriteria.name)
                    {
                        SEntry = BuildSEntry(sEntry)
                    });
                }
            }

            return(result);
        }
コード例 #2
0
 public ProductionSituationValueUpdateViewModel(tStage t)
 {
     this.idStaege         = t.idStage;
     this.badProductValue  = t.NumberBadProductValue ?? 0.0;
     this.niceProductValue = t.NumberNiceProductValue ?? 0.0;
     this.totalProduction  = badProductValue + niceProductValue;
 }
コード例 #3
0
        private static string Serialize(tStage stage)
        {
            var xmlSerializer = new XmlSerializer(typeof(tStage));
            var strBuilder    = new StringBuilder();

            using (var txtWriter = new StringWriter(strBuilder))
            {
                xmlSerializer.Serialize(txtWriter, stage);
            }

            return(strBuilder.ToString());
        }
コード例 #4
0
        private static tStage DeserializeStage(string xml)
        {
            var    xmlSerializer = new XmlSerializer(typeof(tStage));
            tStage result        = null;

            using (var txtReader = new StringReader(xml))
            {
                result = (tStage)xmlSerializer.Deserialize(txtReader);
            }

            return(result);
        }
コード例 #5
0
 public ProductionSituationModel(tStage stage)
 {
     this.badProductValue         = stage.NumberBadProductValue ?? 0.0;
     this.niceProductValue        = stage.NumberNiceProductValue ?? 0.0;
     this.totalProduction         = badProductValue + niceProductValue;
     this.productName             = stage.tProduct.tProductCategory.Nome;
     this.machineName             = stage.tMachine.Name;
     this.machineStateDescription = stage.tMachine.tMachineState.NameState;
     this.idStage = stage.idStage;
     users        = new List <UserViewModel>();
     foreach (tShift item in stage.tShift.ToList())
     {
         users.Add(new UserViewModel(item.tUser));
     }
 }
コード例 #6
0
        private static List <BaseCasePlanItemInstance> BuildPlanItems(tStage stage, string casePlanInstanceId)
        {
            var planItems = new List <BaseCasePlanItemInstance>();

            if (stage.planItem != null)
            {
                foreach (var planItem in stage.planItem)
                {
                    var planItemDef     = stage.Items.First(i => i.id == planItem.definitionRef);
                    var flowInstanceElt = BuildPlanItem(planItem.id, planItem.name, planItemDef, casePlanInstanceId);
                    if (planItem.entryCriterion != null)
                    {
                        foreach (var entryCriterion in planItem.entryCriterion)
                        {
                            var sEntry = stage.sentry.First(s => s.id == entryCriterion.sentryRef);
                            flowInstanceElt.EntryCriterions.Add(new Criteria(entryCriterion.name)
                            {
                                SEntry = BuildSEntry(sEntry)
                            });
                        }
                    }

                    if (planItem.exitCriterion != null)
                    {
                        foreach (var exitCriteria in planItem.exitCriterion)
                        {
                            var sEntry = stage.sentry.First(s => s.id == exitCriteria.sentryRef);
                            flowInstanceElt.ExitCriterions.Add(new Criteria(exitCriteria.name)
                            {
                                SEntry = BuildSEntry(sEntry)
                            });
                        }
                    }

                    if (planItem.itemControl != null)
                    {
                        var baseTask = flowInstanceElt as BaseTaskOrStageElementInstance;
                        if (planItem.itemControl.manualActivationRule != null && baseTask != null)
                        {
                            var manualActivationRule = new ManualActivationRule(planItem.itemControl.manualActivationRule.name);
                            var condition            = planItem.itemControl.manualActivationRule.condition;
                            if (condition != null && condition.Text.Any())
                            {
                                manualActivationRule.Expression = new CMMNExpression(condition.language, condition.Text.First());
                            }

                            baseTask.ManualActivationRule = manualActivationRule;
                        }

                        if (planItem.itemControl.repetitionRule != null)
                        {
                            var repetitionRule = new RepetitionRule(planItem.itemControl.repetitionRule.name);
                            var condition      = planItem.itemControl.repetitionRule.condition;
                            if (condition != null && condition.Text.Any())
                            {
                                repetitionRule.Condition = new CMMNExpression(condition.language, condition.Text.First());
                            }

                            flowInstanceElt.RepetitionRule = repetitionRule;
                        }
                    }

                    planItems.Add(flowInstanceElt);
                }
            }

            return(planItems);
        }