public List <Recipe> Read_recipes_from_Json(string filename) { List <Recipe> recipes = new List <Recipe>(); string raw = File.ReadAllText(filename); try { dynamic list = JsonConvert.DeserializeObject <dynamic>(raw); if (list != null) { foreach (dynamic element in list) { Recipe recipe1 = new Recipe((string)element.Name); foreach (dynamic c in element.component_List) { Component component; if (c.Name == "Fish") { component = new Fish(); } else if (c.Name == "Carrot") { component = new Carrot(); } else if (c.Name == "Potato") { component = new Potato(); } else if (c.Name == "Chicken") { component = new Chicken(); } else if (c.Name == "Coconut") { component = new Coconut(); } else if (c.Name == "Coffee") { component = new Coffee(); } else if (c.Name == "Milk") { component = new Milk(); } else if (c.Name == "Noodle") { component = new Noodle(); } else if (c.Name == "Shrimp") { component = new Shrimp(); } else if (c.Name == "Taro") { component = new Taro(); } else if (c.Name == "Rice") { component = new Rice(); } else if (c.Name == "Bubble tea") { component = new Bubble_tea(); } else if (c.Name == "Tea") { component = new Tea(); } else if (c.Name == "Beef") { component = new Beef(); } else { throw new Exception(); } component.Quantity = c.Quantity; foreach (dynamic v in c.visitors) { IVisitor visitor; if (v.Type == 1) { visitor = new ChopVisitor(); } else if (v.Type == 2) { visitor = new FryVisitor(); } else if (v.Type == 3) { visitor = new WashVisitor(); } else if (v.Type == 4) { visitor = new BoilVisitor(); } else { throw new Exception(); } component.visitors.Add(visitor); } recipe1.component_List.Add(component); } recipes.Add(recipe1); } } } catch { // } return(recipes); }
private void button5_Click(object sender, EventArgs e) { Recipe recipe = new Recipe(listcomponents, textBox1.Text); List <Recipe> recipes = new List <Recipe>(); try { string raw = File.ReadAllText(@"..\..\DataSource\Test.json"); dynamic list = JsonConvert.DeserializeObject <dynamic>(raw); if (list != null) { foreach (dynamic element in list) { Recipe recipe1 = new Recipe((string)element.Name); foreach (dynamic c in element.component_List) { Component component; if (c.Name == "Fish") { component = new Fish(); } else if (c.Name == "Carrot") { component = new Carrot(); } else if (c.Name == "Potato") { component = new Potato(); } else if (c.Name == "Carrot") { component = new Carrot(); } else if (c.Name == "Chicken") { component = new Chicken(); } else if (c.Name == "Coconut") { component = new Coconut(); } else if (c.Name == "Milk") { component = new Milk(); } else if (c.Name == "Shrimp") { component = new Shrimp(); } else if (c.Name == "Taro") { component = new Taro(); } else if (c.Name == "Bubble tea") { component = new Bubble_tea(); } else if (c.Name == "Beef") { component = new Beef(); } else { throw new Exception(); } component.Quantity = c.Quantity; foreach (dynamic v in c.visitors) { IVisitor visitor; if (v.Type == 1) { visitor = new ChopVisitor(); } else if (v.Type == 2) { visitor = new FryVisitor(); } else if (v.Type == 3) { visitor = new WashVisitor(); } else if (v.Type == 4) { visitor = new BoilVisitor(); } else { throw new Exception(); } component.visitors.Add(visitor); } recipe1.component_List.Add(component); } recipes.Add(recipe1); } } } catch { // } recipes.Add(recipe); string data = JsonConvert.SerializeObject(recipes, Formatting.Indented); File.WriteAllText(@"..\..\DataSource\Test.json", data); this.Close(); }