예제 #1
0
        public void ValidateWF(lmDatasets.ActivityConfig.SeriesRow sr)
        {
            Clear();

            foreach (lmDatasets.ActivityConfig.ACSeriesRow acsr in acMng.DB.ACSeries.Select("seriesid=" + sr.SeriesId))
            {
                if (acMng.GetACSeries().IsStart(acsr))
                {
                    //put rules that apply to start steps here
                    StartTypeRule(acsr);
                }

                if (acMng.GetACSeries().IsFinish(acsr))
                {
                    //put rules that apply to finish steps here
                    FinishTypeRule(acsr);
                }

                //put rules that test individual related field records here
                RelatedFieldsVerify(acsr);
                ConnectorRules(acsr);

                //put general rules here
                TemplateRule(acsr);
                InternalDecisionRule(acsr);
            }
        }
예제 #2
0
        public ActivityConfig.SeriesRow Clone(ActivityConfig.SeriesRow oldSeries)
        {
            //copy series row
            ActivityConfig.SeriesRow newSeries = mySeriesDT.NewSeriesRow();

            newSeries.ItemArray = oldSeries.ItemArray;
            mySeriesDT.AddSeriesRow(newSeries);

            newSeries.CreatesFile             = oldSeries.CreatesFile;
            newSeries.OncePerFile             = oldSeries.OncePerFile;
            newSeries.ConfirmMultipleInstance = oldSeries.ConfirmMultipleInstance;
            newSeries.SingleInstancePerFile   = oldSeries.SingleInstancePerFile;
            newSeries.Obsolete = oldSeries.Obsolete;

            newSeries.ContainerFileId = 0;
            newSeries.SeriesDescEng   = "Copy of " + newSeries.SeriesDescEng;
            newSeries.SeriesDescFre   = "Copie de " + newSeries.SeriesDescFre;

            System.Collections.Generic.Dictionary <int, int> concordance = new System.Collections.Generic.Dictionary <int, int>();

            //copy acseries rows
            foreach (ActivityConfig.ACSeriesRow acsr in oldSeries.GetACSeriesRows())
            {
                ActivityConfig.ACSeriesRow newAcsr = myA.DB.ACSeries.NewACSeriesRow();

                newAcsr.ItemArray = acsr.ItemArray;
                newAcsr.SeriesId  = newSeries.SeriesId;
                myA.DB.ACSeries.AddACSeriesRow(newAcsr);

                concordance.Add(acsr.ACSeriesId, newAcsr.ACSeriesId);

                newAcsr.Finish      = acsr.Finish;
                newAcsr.Start       = acsr.Start;
                newAcsr.OnceOnly    = acsr.OnceOnly;
                newAcsr.Seq         = acsr.Seq;
                newAcsr.InitialStep = acsr.InitialStep;
                newAcsr.StepType    = acsr.StepType;

                myA.GetACSeries().ReplaceRelFields(newAcsr, acsr, true);


                //foreach (ActivityConfig.ACConvertRow accr in acsr.GetACConvertRowsByACSeries_ACConvert())
                //{
                //    lmDatasets.ActivityConfig.ACConvertRow newAcc = myA.DB.ACConvert.NewACConvertRow();
                //    newAcc.ItemArray = accr.ItemArray;
                //    newAcc.ACSeriesId = accr.ACSeriesId;
                //    myA.DB.ACConvert.AddACConvertRow(newAcc);


                //}
            }


            foreach (ActivityConfig.ACSeriesRow acsr in oldSeries.GetACSeriesRows())
            {
                foreach (ActivityConfig.ACDependencyRow acdr in acsr.GetACDependencyRowsByNextSteps())
                {
                    lmDatasets.ActivityConfig.ACDependencyRow newAcd = myA.DB.ACDependency.NewACDependencyRow();

                    newAcd.ItemArray     = acdr.ItemArray;
                    newAcd.CurrentStepId = concordance[acdr.CurrentStepId];
                    if (concordance.ContainsKey(acdr.NextStepId))
                    {
                        newAcd.NextStepId = concordance[acdr.NextStepId];
                    }
                    else
                    {
                        newAcd.NextStepId = acdr.NextStepId;
                    }
                    myA.DB.ACDependency.AddACDependencyRow(newAcd);

                    newAcd.LinkType = acdr.LinkType;
                    if (!acdr.IsDescEngNull())
                    {
                        newAcd.DescEng = acdr.DescEng;
                    }
                    if (!acdr.IsDescFreNull())
                    {
                        newAcd.DescFre = acdr.DescFre;
                    }
                }
            }
            return(newSeries);
        }