Пример #1
0
        /// <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;           
        }