From c9dfe99adf2c1773f80b543bf34fa8509b62dcfe Mon Sep 17 00:00:00 2001 From: ZoutigeWolf Date: Fri, 10 Mar 2023 03:50:54 +0100 Subject: [PATCH 1/4] Added dishes/drinks menu --- RestaurantManager/DatabaseConnection.cs | 4 +++- RestaurantManager/Menu/Dish.cs | 15 ++++++++++++ RestaurantManager/Menu/Menu.cs | 29 +++++++++++++++++++++++ RestaurantManager/Menu/MenuCategory.cs | 31 +++++++++++++++++++++++++ RestaurantManager/Menu/MenuManager.cs | 13 +++++++++++ RestaurantManager/Program.cs | 17 +++++++++++++- 6 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 RestaurantManager/Menu/Dish.cs create mode 100644 RestaurantManager/Menu/Menu.cs create mode 100644 RestaurantManager/Menu/MenuCategory.cs create mode 100644 RestaurantManager/Menu/MenuManager.cs diff --git a/RestaurantManager/DatabaseConnection.cs b/RestaurantManager/DatabaseConnection.cs index 0d2d869..3ee0a41 100644 --- a/RestaurantManager/DatabaseConnection.cs +++ b/RestaurantManager/DatabaseConnection.cs @@ -30,7 +30,9 @@ public List> Execute(string query, params object[] values) HttpResponseMessage res = _httpClient.PostAsync(_credentials.Adress, body).Result; string jsonResponse = res.Content.ReadAsStringAsync().Result; - + + Console.WriteLine(jsonResponse); + return JsonConvert.DeserializeObject>>(jsonResponse); } diff --git a/RestaurantManager/Menu/Dish.cs b/RestaurantManager/Menu/Dish.cs new file mode 100644 index 0000000..7fdc42e --- /dev/null +++ b/RestaurantManager/Menu/Dish.cs @@ -0,0 +1,15 @@ +namespace RestaurantManager; + +public class Dish +{ + public int ID; + public string Name; + public decimal Price; + + public Dish(int id, string name, decimal price) + { + this.ID = id; + this.Name = name; + this.Price = price; + } +} \ No newline at end of file diff --git a/RestaurantManager/Menu/Menu.cs b/RestaurantManager/Menu/Menu.cs new file mode 100644 index 0000000..532b296 --- /dev/null +++ b/RestaurantManager/Menu/Menu.cs @@ -0,0 +1,29 @@ +namespace RestaurantManager; + +public class Menu +{ + public int ID; + public string Name; + public List Categories; + + public Menu(int id, string name) + { + this.ID = id; + this.Name = name; + this.Categories = LoadCategoriesFromDatabase(); + } + + + private List LoadCategoriesFromDatabase() + { + List> categories = Program.Database.Execute( + """ + SELECT mc.* + FROM menu_categories mc + JOIN menu_category_links mcl ON mc.id = mcl.category_id + WHERE mcl.menu_id = %s + """, ID); + + return categories.Select(c => new MenuCategory((int)(long)c[0], (string)c[1])).ToList(); + } +} \ No newline at end of file diff --git a/RestaurantManager/Menu/MenuCategory.cs b/RestaurantManager/Menu/MenuCategory.cs new file mode 100644 index 0000000..b1e4fc2 --- /dev/null +++ b/RestaurantManager/Menu/MenuCategory.cs @@ -0,0 +1,31 @@ +namespace RestaurantManager; + +public class MenuCategory +{ + public int ID; + public string Name; + public List Dishes; + + public MenuCategory(int id, string name) + { + this.ID = id; + this.Name = name; + this.Dishes = LoadDishesFromDatabase(); + } + + private List LoadDishesFromDatabase() + { + List> categories = Program.Database.Execute( + """ + SELECT dishes.* + FROM dishes + JOIN category_dish_links cdl ON dishes.id = cdl.dish_id + WHERE cdl.category_id = %s + """, ID); + + return categories.Select(d => new Dish( + (int)(long)d[0], + (string)d[1], + Convert.ToDecimal(d[2]))).ToList(); + } +} \ No newline at end of file diff --git a/RestaurantManager/Menu/MenuManager.cs b/RestaurantManager/Menu/MenuManager.cs new file mode 100644 index 0000000..5b36118 --- /dev/null +++ b/RestaurantManager/Menu/MenuManager.cs @@ -0,0 +1,13 @@ +namespace RestaurantManager; + +public static class MenuManager +{ + public static List Menus = LoadMenusFromDatabase(); + + private static List LoadMenusFromDatabase() + { + List> menus = Program.Database.Execute("SELECT * FROM menus"); + + return menus.Select(m => new Menu((int)(long)m[0], (string)m[1])).ToList(); + } +} diff --git a/RestaurantManager/Program.cs b/RestaurantManager/Program.cs index c00e761..4673c1e 100644 --- a/RestaurantManager/Program.cs +++ b/RestaurantManager/Program.cs @@ -2,8 +2,23 @@ static class Program { + public static readonly DatabaseConnection Database = new DatabaseConnection("DatabaseCredentials.json"); + public static void Main(string[] args) { - + foreach (Menu menu in MenuManager.Menus) + { + Console.WriteLine($"---- {menu.ID} - {menu.Name} ----"); + + foreach (MenuCategory category in menu.Categories) + { + Console.WriteLine($"-- {category.ID} - {category.Name} --"); + + foreach (Dish dish in category.Dishes) + { + Console.WriteLine($"{dish.ID} - {dish.Name} - {dish.Price}"); + } + } + } } } \ No newline at end of file From 5d4f97677c54af16000f5468ef7ad1f67ae46e23 Mon Sep 17 00:00:00 2001 From: ZoutigeWolf Date: Fri, 10 Mar 2023 03:52:33 +0100 Subject: [PATCH 2/4] Remove debug log --- RestaurantManager/DatabaseConnection.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/RestaurantManager/DatabaseConnection.cs b/RestaurantManager/DatabaseConnection.cs index 3ee0a41..0d2d869 100644 --- a/RestaurantManager/DatabaseConnection.cs +++ b/RestaurantManager/DatabaseConnection.cs @@ -30,9 +30,7 @@ public List> Execute(string query, params object[] values) HttpResponseMessage res = _httpClient.PostAsync(_credentials.Adress, body).Result; string jsonResponse = res.Content.ReadAsStringAsync().Result; - - Console.WriteLine(jsonResponse); - + return JsonConvert.DeserializeObject>>(jsonResponse); } From b4f06add5f96aad82dcf703bd4c9f9e43e04c1d2 Mon Sep 17 00:00:00 2001 From: ZoutigeWolf Date: Sun, 12 Mar 2023 22:48:32 +0100 Subject: [PATCH 3/4] minor changes --- RestaurantManager/Menu/Menu.cs | 4 +++- RestaurantManager/Menu/MenuManager.cs | 4 +++- RestaurantManager/Program.cs | 15 +-------------- 3 files changed, 7 insertions(+), 16 deletions(-) diff --git a/RestaurantManager/Menu/Menu.cs b/RestaurantManager/Menu/Menu.cs index 532b296..f8fae8e 100644 --- a/RestaurantManager/Menu/Menu.cs +++ b/RestaurantManager/Menu/Menu.cs @@ -24,6 +24,8 @@ FROM menu_categories mc WHERE mcl.menu_id = %s """, ID); - return categories.Select(c => new MenuCategory((int)(long)c[0], (string)c[1])).ToList(); + return categories.Select(c => new MenuCategory( + (int)(long)c[0], + (string)c[1])).ToList(); } } \ No newline at end of file diff --git a/RestaurantManager/Menu/MenuManager.cs b/RestaurantManager/Menu/MenuManager.cs index 5b36118..63dea0e 100644 --- a/RestaurantManager/Menu/MenuManager.cs +++ b/RestaurantManager/Menu/MenuManager.cs @@ -8,6 +8,8 @@ private static List LoadMenusFromDatabase() { List> menus = Program.Database.Execute("SELECT * FROM menus"); - return menus.Select(m => new Menu((int)(long)m[0], (string)m[1])).ToList(); + return menus.Select(m => new Menu( + (int)(long)m[0], + (string)m[1])).ToList(); } } diff --git a/RestaurantManager/Program.cs b/RestaurantManager/Program.cs index 4673c1e..ecee156 100644 --- a/RestaurantManager/Program.cs +++ b/RestaurantManager/Program.cs @@ -6,19 +6,6 @@ static class Program public static void Main(string[] args) { - foreach (Menu menu in MenuManager.Menus) - { - Console.WriteLine($"---- {menu.ID} - {menu.Name} ----"); - - foreach (MenuCategory category in menu.Categories) - { - Console.WriteLine($"-- {category.ID} - {category.Name} --"); - - foreach (Dish dish in category.Dishes) - { - Console.WriteLine($"{dish.ID} - {dish.Name} - {dish.Price}"); - } - } - } + } } \ No newline at end of file From cca3cef3871b23cd1107d717756612f319299224 Mon Sep 17 00:00:00 2001 From: ZoutigeWolf <1045891@hr.nl> Date: Mon, 20 Mar 2023 14:47:41 +0100 Subject: [PATCH 4/4] change version to .NET 6.0 --- RestaurantManager/RestaurantManager.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RestaurantManager/RestaurantManager.csproj b/RestaurantManager/RestaurantManager.csproj index 7257b90..9af98f9 100644 --- a/RestaurantManager/RestaurantManager.csproj +++ b/RestaurantManager/RestaurantManager.csproj @@ -2,7 +2,7 @@ Exe - net7.0 + net6.0 enable enable