BExIS.RPM.Model.DataStructureDesignerModel.getOrderedVariables C# (CSharp) Method

getOrderedVariables() public method

public getOrderedVariables ( StructuredDataStructure structuredDataStructure ) : List
structuredDataStructure BExIS.Dlm.Entities.DataStructure.StructuredDataStructure
return List
        public List<Variable> getOrderedVariables(StructuredDataStructure structuredDataStructure)
        {
            DataStructureManager dsm = new DataStructureManager();
            XmlDocument doc = (XmlDocument)structuredDataStructure.Extra;
            XmlNode order;

                if (doc == null)
                {
                    doc = new XmlDocument();
                XmlNode root = doc.CreateNode(System.Xml.XmlNodeType.Element, "extra", null);
                doc.AppendChild(root);
            }
            if (doc.GetElementsByTagName("order").Count == 0)
                    {

                if (structuredDataStructure.Variables.Count > 0)
                {
                    order = doc.CreateNode(System.Xml.XmlNodeType.Element, "order", null);
                        foreach (Variable v in structuredDataStructure.Variables)
                        {

                            XmlNode variable = doc.CreateNode(System.Xml.XmlNodeType.Element, "variable", null);
                            variable.InnerText = v.Id.ToString();
                        order.AppendChild(variable);
                        }
                    doc.FirstChild.AppendChild(order);
                    structuredDataStructure.Extra = doc;
                    dsm.UpdateStructuredDataStructure(structuredDataStructure);
                }
            }

            order = doc.GetElementsByTagName("order")[0];
            List<Variable> orderedVariables = new List<Variable>();
            if (structuredDataStructure.Variables.Count != 0)
                {
                foreach (XmlNode x in order)
                    {
                    foreach (Variable v in structuredDataStructure.Variables)
                        {
                            if (v.Id == Convert.ToInt64(x.InnerText))
                            orderedVariables.Add(v);

                        }
                    }
            }
            return orderedVariables;
        }