/// <summary> /// Creates a list of bjcpStyles from an XML doc /// </summary> public IList <BjcpStyle> GetStylesFromXMLDoc(XmlDocument document) { var bjcpStyles = new List <BjcpStyle>(); foreach (XmlNode currentClass in document.SelectNodes("//styleguide//class")) { var currentClassType = currentClass.Attributes["type"].Value; if (currentClassType != "") { foreach (XmlNode category in currentClass.SelectNodes("category")) { var categoryid = Int32.Parse(category.Attributes["id"].Value); var categoryname = category.SelectSingleNode("name").InnerText; foreach (XmlNode subcategory in category.SelectNodes("subcategory")) { var subcategoryid = (subcategory.Attributes["id"].Value != null) ? subcategory.Attributes["id"].Value : ""; var subcategoryname = (subcategory.SelectSingleNode("name") != null) ? subcategory.SelectSingleNode("name").InnerText : ""; var subcategoryaroma = (subcategory.SelectSingleNode("aroma") != null) ? subcategory.SelectSingleNode("aroma").InnerText : ""; var subcategoryappearance = (subcategory.SelectSingleNode("appearance") != null) ? subcategory.SelectSingleNode("appearance").InnerText : ""; var subcategoryflavor = (subcategory.SelectSingleNode("flavor") != null) ? subcategory.SelectSingleNode("flavor").InnerText : ""; var subcategorymouthfeel = (subcategory.SelectSingleNode("mouthfeel") != null) ? subcategory.SelectSingleNode("mouthfeel").InnerText : ""; var subcategoryimpression = (subcategory.SelectSingleNode("impression") != null) ? subcategory.SelectSingleNode("impression").InnerText : ""; var subcategorycomments = (subcategory.SelectSingleNode("comments") != null) ? subcategory.SelectSingleNode("comments").InnerText : ""; var subcategoryingredients = (subcategory.SelectSingleNode("ingredients") != null) ? subcategory.SelectSingleNode("ingredients").InnerText : ""; var subcategoryexamples = (subcategory.SelectSingleNode("examples") != null) ? subcategory.SelectSingleNode("examples").InnerText : ""; var subcategoryoglow = (subcategory.SelectSingleNode("stats//og//low") != null) ? Double.Parse(subcategory.SelectSingleNode("stats//og//low").InnerText) : 0; var subcategoryoghigh = (subcategory.SelectSingleNode("stats//og//high") != null) ? Double.Parse(subcategory.SelectSingleNode("stats//og//high").InnerText) : 0; var subcategoryfglow = (subcategory.SelectSingleNode("stats//fg//low") != null) ? Double.Parse(subcategory.SelectSingleNode("stats//fg//low").InnerText) : 0; var subcategoryfghigh = (subcategory.SelectSingleNode("stats//fg//high") != null) ? Double.Parse(subcategory.SelectSingleNode("stats//fg//high").InnerText) : 0; var subcategoryibulow = (subcategory.SelectSingleNode("stats//ibu//low") != null) ? Int32.Parse(subcategory.SelectSingleNode("stats//ibu//low").InnerText) : 0; var subcategoryibuhigh = (subcategory.SelectSingleNode("stats//ibu//high") != null) ? Int32.Parse(subcategory.SelectSingleNode("stats//ibu//high").InnerText) : 0; var subcategorysrmlow = (subcategory.SelectSingleNode("stats//srm//low") != null) ? Double.Parse(subcategory.SelectSingleNode("stats//srm//low").InnerText) : 0; var subcategorysrmhigh = (subcategory.SelectSingleNode("stats//srm//high") != null) ? Double.Parse(subcategory.SelectSingleNode("stats//srm//high").InnerText) : 0; var subcategoryabvlow = (subcategory.SelectSingleNode("stats//abv//low") != null) ? Double.Parse(subcategory.SelectSingleNode("stats//abv//low").InnerText) : 0; var subcategoryabvhigh = (subcategory.SelectSingleNode("stats//abv//high") != null) ? Double.Parse(subcategory.SelectSingleNode("stats//abv//high").InnerText) : 0; var bjcpStyle = new Core.Model.BjcpStyle(); bjcpStyles.Add(new Core.Model.BjcpStyle { Class = currentClassType, CategoryName = categoryname, CategoryId = categoryid, SubCategoryId = subcategoryid, SubCategoryName = subcategoryname, Aroma = subcategoryaroma, Appearance = subcategoryappearance, Flavor = subcategoryflavor, Mouthfeel = subcategorymouthfeel, Impression = subcategoryimpression, Comments = subcategorycomments, Ingredients = subcategoryingredients, Examples = subcategoryexamples, Og_Low = subcategoryoglow, Og_High = subcategoryoghigh, Fg_High = subcategoryfghigh, Fg_Low = subcategoryfglow, Srm_Low = subcategorysrmlow, Srm_High = subcategorysrmhigh, Ibu_Low = subcategoryibulow, Ibu_High = subcategoryibuhigh, Abv_Low = subcategoryabvlow, Abv_High = subcategoryabvhigh }); } } } } return(bjcpStyles); }
/// <summary> /// Creates a list of bjcpStyles from an XML doc /// </summary> public IList<BjcpStyle> GetStylesFromXMLDoc(XmlDocument document) { var bjcpStyles = new List<BjcpStyle>(); foreach (XmlNode currentClass in document.SelectNodes("//styleguide//class")) { var currentClassType = currentClass.Attributes["type"].Value; if (currentClassType != "") { foreach (XmlNode category in currentClass.SelectNodes("category")) { var categoryid = Int32.Parse(category.Attributes["id"].Value); var categoryname = category.SelectSingleNode("name").InnerText; foreach (XmlNode subcategory in category.SelectNodes("subcategory")) { var subcategoryid = (subcategory.Attributes["id"].Value != null) ? subcategory.Attributes["id"].Value : ""; var subcategoryname = (subcategory.SelectSingleNode("name") != null) ? subcategory.SelectSingleNode("name").InnerText : ""; var subcategoryaroma = (subcategory.SelectSingleNode("aroma") != null) ? subcategory.SelectSingleNode("aroma").InnerText : ""; var subcategoryappearance = (subcategory.SelectSingleNode("appearance") != null) ? subcategory.SelectSingleNode("appearance").InnerText : ""; var subcategoryflavor = (subcategory.SelectSingleNode("flavor") != null) ? subcategory.SelectSingleNode("flavor").InnerText : ""; var subcategorymouthfeel = (subcategory.SelectSingleNode("mouthfeel") != null) ? subcategory.SelectSingleNode("mouthfeel").InnerText : ""; var subcategoryimpression = (subcategory.SelectSingleNode("impression") != null) ? subcategory.SelectSingleNode("impression").InnerText : ""; var subcategorycomments = (subcategory.SelectSingleNode("comments") != null) ? subcategory.SelectSingleNode("comments").InnerText : ""; var subcategoryingredients = (subcategory.SelectSingleNode("ingredients") != null) ? subcategory.SelectSingleNode("ingredients").InnerText : ""; var subcategoryexamples = (subcategory.SelectSingleNode("examples") != null) ? subcategory.SelectSingleNode("examples").InnerText : ""; var subcategoryoglow = (subcategory.SelectSingleNode("stats//og//low") != null) ? Double.Parse(subcategory.SelectSingleNode("stats//og//low").InnerText) : 0; var subcategoryoghigh = (subcategory.SelectSingleNode("stats//og//high") != null) ? Double.Parse(subcategory.SelectSingleNode("stats//og//high").InnerText) : 0; var subcategoryfglow = (subcategory.SelectSingleNode("stats//fg//low") != null) ? Double.Parse(subcategory.SelectSingleNode("stats//fg//low").InnerText) : 0; var subcategoryfghigh = (subcategory.SelectSingleNode("stats//fg//high") != null) ? Double.Parse(subcategory.SelectSingleNode("stats//fg//high").InnerText) : 0; var subcategoryibulow = (subcategory.SelectSingleNode("stats//ibu//low") != null) ? Int32.Parse(subcategory.SelectSingleNode("stats//ibu//low").InnerText) : 0; var subcategoryibuhigh = (subcategory.SelectSingleNode("stats//ibu//high") != null) ? Int32.Parse(subcategory.SelectSingleNode("stats//ibu//high").InnerText) : 0; var subcategorysrmlow = (subcategory.SelectSingleNode("stats//srm//low") != null) ? Double.Parse(subcategory.SelectSingleNode("stats//srm//low").InnerText) : 0; var subcategorysrmhigh = (subcategory.SelectSingleNode("stats//srm//high") != null) ? Double.Parse(subcategory.SelectSingleNode("stats//srm//high").InnerText) : 0; var subcategoryabvlow = (subcategory.SelectSingleNode("stats//abv//low") != null) ? Double.Parse(subcategory.SelectSingleNode("stats//abv//low").InnerText) : 0; var subcategoryabvhigh = (subcategory.SelectSingleNode("stats//abv//high") != null) ? Double.Parse(subcategory.SelectSingleNode("stats//abv//high").InnerText) : 0; var bjcpStyle = new Core.Model.BjcpStyle(); bjcpStyles.Add(new Core.Model.BjcpStyle { Class = currentClassType, CategoryName = categoryname, CategoryId = categoryid, SubCategoryId = subcategoryid, SubCategoryName = subcategoryname, Aroma = subcategoryaroma, Appearance = subcategoryappearance, Flavor = subcategoryflavor, Mouthfeel = subcategorymouthfeel, Impression = subcategoryimpression, Comments = subcategorycomments, Ingredients = subcategoryingredients, Examples = subcategoryexamples, Og_Low = subcategoryoglow, Og_High = subcategoryoghigh, Fg_High = subcategoryfghigh, Fg_Low = subcategoryfglow, Srm_Low = subcategorysrmlow, Srm_High = subcategorysrmhigh, Ibu_Low = subcategoryibulow, Ibu_High = subcategoryibuhigh, Abv_Low = subcategoryabvlow, Abv_High = subcategoryabvhigh }); } } } } return bjcpStyles; }