BExIS.Web.Shell.Areas.DCM.Controllers.FormController.GetChildrenStepsFromMetadata C# (CSharp) Метод

GetChildrenStepsFromMetadata() приватный Метод

private GetChildrenStepsFromMetadata ( BaseUsage usage, StepInfo parent, string parentXpath, StepModelHelper parentStepModelHelper ) : List
usage BaseUsage
parent BExIS.Dcm.Wizard.StepInfo
parentXpath string
parentStepModelHelper BExIS.Web.Shell.Areas.DCM.Models.CreateDataset.StepModelHelper
Результат List
        private List<StepInfo> GetChildrenStepsFromMetadata(BaseUsage usage, StepInfo parent, string parentXpath, StepModelHelper parentStepModelHelper)
        {
            List<StepInfo> childrenSteps = new List<StepInfo>();
            List<BaseUsage> childrenUsages = UsageHelper.GetCompoundChildrens(usage);
            List<StepModelHelper> stepHelperModelList = (List<StepModelHelper>)TaskManager.Bus[CreateTaskmanager.METADATA_STEP_MODEL_HELPER];

            if (childrenUsages.Count > 0)
            {

                foreach (BaseUsage u in childrenUsages)
                {

                    int number = 1;//childrenUsages.IndexOf(u) + 1;
                    string xPath = parentXpath + "//" + u.Label.Replace(" ", string.Empty) + "[" + number + "]";

                    bool complex = false;

                    string actionName = "";
                    string attrName = "";

                    if (u is MetadataPackageUsage)
                    {
                        actionName = "SetMetadataPackage";
                    }
                    else
                    {
                        actionName = "SetMetadataCompoundAttribute";

                        if (u is MetadataAttributeUsage)
                        {
                            MetadataAttributeUsage mau = (MetadataAttributeUsage)u;
                            if (mau.MetadataAttribute.Self is MetadataCompoundAttribute)
                            {
                                complex = true;
                                attrName = mau.MetadataAttribute.Self.Name;
                            }
                        }

                        if (u is MetadataNestedAttributeUsage)
                        {
                            MetadataNestedAttributeUsage mau = (MetadataNestedAttributeUsage)u;
                            if (mau.Member.Self is MetadataCompoundAttribute)
                            {
                                complex = true;
                                attrName = mau.Member.Self.Name;
                            }
                        }

                    }

                    if (complex)
                    {
                        StepInfo s = new StepInfo(u.Label)
                        {
                            Id = TaskManager.GenerateStepId(),
                            parentTitle = attrName,
                            Parent = parent,
                            IsInstanze = false,
                            GetActionInfo = new ActionInfo
                            {
                                ActionName = actionName,
                                ControllerName = "CreateSetMetadataPackage",
                                AreaName = "DCM"
                            },

                            PostActionInfo = new ActionInfo
                            {
                                ActionName = actionName,
                                ControllerName = "CreateSetMetadataPackage",
                                AreaName = "DCM"
                            }
                        };

                        //only not optional

                        if (TaskManager.StepInfos.Where(z => z.Id.Equals(s.Id)).Count() == 0)
                        {
                            StepModelHelper newStepModelHelper = new StepModelHelper(s.Id, 1, u, xPath,
                                parentStepModelHelper);
                            stepHelperModelList.Add(newStepModelHelper);
                            s = LoadStepsBasedOnUsage(u, s, xPath, newStepModelHelper);
                            childrenSteps.Add(s);

                        }
                    }
                    //}

                }
            }

            return childrenSteps;
        }