private async static Task LoadMenu(UpdateProgress progress) { var input = await xmlFile.OpenReadAsync(); XmlTextReader xmlTextReader = new XmlTextReader(input.AsStreamForRead()); XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(xmlTextReader); XmlNode menuNode = xmlDocument.SelectSingleNode("Menu"); int foodMax = GetAllFoodsCount(menuNode); int foodCount = 0; for (int indexCate = 0; indexCate < menuNode.SelectNodes("Cate").Count; indexCate++) { XmlNode cateNode = menuNode.SelectNodes("Cate")[indexCate]; FoodData.Type type = FoodData.ParseType(cateNode.Attributes["id"].Value); for (int indexFood = 0; indexFood < cateNode.SelectNodes("Food").Count; indexFood++) { XmlNode foodNode = cateNode.SelectNodes("Food")[indexFood]; if (foodNode.SelectSingleNode("EAN") == null) { FoodDatas.Add(await new FoodData(type, foodNode.Attributes["name"].Value, int.Parse(foodNode.SelectSingleNode("Price").InnerText), 0, new Uri(foodNode.SelectSingleNode("Url").InnerText)).PreloadImage(indexCate, foodCount, menuNode.ChildNodes.Count, foodMax, progress)); } else { FoodDatas.Add(await new FoodData(type, foodNode.Attributes["name"].Value, foodNode.SelectSingleNode("EAN").InnerText, int.Parse(foodNode.SelectSingleNode("Price").InnerText), 0, new Uri(foodNode.SelectSingleNode("Url").InnerText)).PreloadImage(indexCate, foodCount, menuNode.ChildNodes.Count, foodMax, progress)); } foodCount++; } } InitLists(); }
private static List <FoodData> GetMenuByType(FoodData.Type type) { List <FoodData> filteredFoodDatas = new List <FoodData>(); foreach (FoodData foodData in FoodDatas) { if (foodData.FoodType == type) { filteredFoodDatas.Add(foodData); } } return(filteredFoodDatas); }
private async static Task ParseHTML(FoodData.Type type) { List <XmlFood> Foods = new List <XmlFood>(); string url = "http://www.kimbab1009.com/" + (int)type; HtmlWeb web = new HtmlWeb(); HtmlDocument doc = await web.LoadFromWebAsync(url); HtmlNode docNodes = doc.DocumentNode; HtmlNodeCollection ItemGallarys = docNodes.SelectSingleNode("//main").SelectSingleNode("//div[@class='_widget_data']").SelectNodes("//div[@class='_item item_gallary ']"); foreach (HtmlNode ItemGallary in ItemGallarys) { HtmlDocument htmlDocument = new HtmlDocument(); htmlDocument.LoadHtml(ItemGallary.InnerHtml); HtmlNode ItemContainer = htmlDocument.DocumentNode.SelectSingleNode("//div[@class='item_container _item_container']"); HtmlNode title = ItemContainer.SelectSingleNode("//p[@class='title']"); if (title.SelectSingleNode("//span") != null) { title.RemoveChild(title.SelectSingleNode("//span")); } string name = ItemContainer.SelectSingleNode("//p[@class='title']").InnerText; if (name == string.Empty || ContainsFoodByName(Foods, name)) { continue; } string imgUrl; if (type != FoodData.Type.SEASON) { imgUrl = ItemContainer.SelectSingleNode("//div[@class='img_wrap ']").GetAttributeValue("data-src", string.Empty); } else { imgUrl = ItemContainer.SelectSingleNode("//div[@class='img_wrap _lightbox_item cursor_pointer ']").GetAttributeValue("data-src", string.Empty); } Foods.Add(new XmlFood(name, imgUrl)); } Cates.Add(new XmlCate(type, Foods)); }
public static List <FoodData> GetMenu(FoodData.Type type) { List <FoodData> foodDatas = null; switch (type) { case FoodData.Type.NEW: foodDatas = FoodDatasNEW; break; case FoodData.Type.KIMBAP: foodDatas = FoodDatasKIMBAP; break; case FoodData.Type.MEAL: foodDatas = FoodDatasMEAL; break; case FoodData.Type.FLOURBASED: foodDatas = FoodDatasFLOURBASED; break; case FoodData.Type.PORKCUTLET: foodDatas = FoodDatasPORKCUTLET; break; case FoodData.Type.SEASON: foodDatas = FoodDatasSEASON; break; case FoodData.Type.UNDIFINED: foodDatas = FoodDatasUNDIFINED; break; } return(foodDatas); }
public static int GetCateCount(FoodData.Type type) { int count = 0; switch (type) { case FoodData.Type.NEW: count = GetFoodsCount(FoodsNew); break; case FoodData.Type.KIMBAP: count = GetFoodsCount(FoodsKimbap); break; case FoodData.Type.MEAL: count = GetFoodsCount(FoodsMeal); break; case FoodData.Type.FLOURBASED: count = GetFoodsCount(FoodsFlourbased); break; case FoodData.Type.PORKCUTLET: count = GetFoodsCount(FoodsPorkcutlet); break; case FoodData.Type.SEASON: count = GetFoodsCount(FoodsSeason); break; case FoodData.Type.UNDIFINED: count = GetFoodsCount(FoodsUndified); break; } return(count); }
public static int GetCateTotalPrice(FoodData.Type type) { int totalPrice = 0; switch (type) { case FoodData.Type.NEW: totalPrice = TypesTotalPrice[0]; break; case FoodData.Type.KIMBAP: totalPrice = TypesTotalPrice[1]; break; case FoodData.Type.MEAL: totalPrice = TypesTotalPrice[2]; break; case FoodData.Type.FLOURBASED: totalPrice = TypesTotalPrice[3]; break; case FoodData.Type.PORKCUTLET: totalPrice = TypesTotalPrice[4]; break; case FoodData.Type.SEASON: totalPrice = TypesTotalPrice[5]; break; case FoodData.Type.UNDIFINED: totalPrice = TypesTotalPrice[6]; break; } return(totalPrice); }
public XmlCate(FoodData.Type type, List <XmlFood> foods) { this.type = type; this.foods = foods; }