BExIS.Web.Shell.Areas.DDM.Helpers.SearchUIHelper.SortVariablesOnDatastructure C# (CSharp) Method

SortVariablesOnDatastructure() private static method

private static SortVariablesOnDatastructure ( List variables, DataStructure datastructure ) : List
variables List
datastructure DataStructure
return List
        private static List<Variable> SortVariablesOnDatastructure(List<Variable> variables, DataStructure datastructure)
        {
            List<Variable> sortedVariables = new List<Variable>();

            XmlDocument extraXml = datastructure.Extra as XmlDocument;

            if (datastructure.Extra != null && (datastructure.Extra as XmlDocument).GetElementsByTagName("order").Count != 0)
            {
                XmlNode orderNode = extraXml.GetElementsByTagName("order")[0];
                XmlDocument order = new XmlDocument();
                order.LoadXml(orderNode.OuterXml);

                IEnumerable<XElement> elements = XmlUtility.GetXElementByNodeName("variable", XmlUtility.ToXDocument(order));

                foreach (XElement element in elements)
                {
                    long id = Convert.ToInt64(element.Value);
                    Variable var = variables.Where(v => v.Id.Equals(id)).FirstOrDefault();
                    if (var != null)
                        sortedVariables.Add(var);
                }
                return sortedVariables;
            }
            return variables;
        }