From 5e83a249b6c785a33d025a6e30b761e05e7fb1e9 Mon Sep 17 00:00:00 2001 From: Yourdax Date: Tue, 27 Aug 2024 04:55:08 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D0=B1=D0=BE=D1=87=D0=B8=D0=B9=20?= =?UTF-8?q?=D0=B8=D0=BD=D1=82=D0=B5=D1=80=D1=84=D0=B5=D0=B9=D1=81=20=D0=BE?= =?UTF-8?q?=D1=81=D0=BD=D0=BE=D0=B2=D0=BD=D1=8B=D1=85=20=D1=81=D1=83=D1=89?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D0=B5=D0=B9=20=D0=B3=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D0=B2.=20=D0=9E=D1=81=D1=82=D0=B0=D0=BB=D0=B8=D1=81=D1=8C=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=BA=D0=B0=D0=B7=D1=8B\=D0=B0=D0=BB=D0=BA.=D0=BA?= =?UTF-8?q?=D0=B0=D1=80=D1=82=D1=8B\=D0=BE=D1=82=D1=87=D0=B5=D1=82=D1=8B.?= =?UTF-8?q?=20=D0=94=D0=BE=D0=BB=D0=B6=D0=BD=D0=BE=20=D0=B1=D1=8B=D1=82?= =?UTF-8?q?=D1=8C=20=D0=BB=D0=B5=D0=B3=D0=BA=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... 20240827004449_InitialCreate.Designer.cs} | 2 +- ...ate.cs => 20240827004449_InitialCreate.cs} | 0 .../Controllers/HomeController.cs | 107 ++++++++++++++++++ .../Views/Home/CreateDrink.cshtml | 28 +++++ .../Views/Home/DeleteDrink.cshtml | 22 ++++ .../Views/Home/Drinks.cshtml | 59 ++++++++++ .../Views/Home/UpdateDrink.cshtml | 42 +++++++ .../Views/Home/UpdateProduct.cshtml | 30 +---- 8 files changed, 260 insertions(+), 30 deletions(-) rename DiningRoom/DiningRoomDatabaseImplement/Migrations/{20240827000029_InitialCreate.Designer.cs => 20240827004449_InitialCreate.Designer.cs} (99%) rename DiningRoom/DiningRoomDatabaseImplement/Migrations/{20240827000029_InitialCreate.cs => 20240827004449_InitialCreate.cs} (100%) create mode 100644 DiningRoom/DiningRoomUserApp/Views/Home/CreateDrink.cshtml create mode 100644 DiningRoom/DiningRoomUserApp/Views/Home/DeleteDrink.cshtml create mode 100644 DiningRoom/DiningRoomUserApp/Views/Home/Drinks.cshtml create mode 100644 DiningRoom/DiningRoomUserApp/Views/Home/UpdateDrink.cshtml diff --git a/DiningRoom/DiningRoomDatabaseImplement/Migrations/20240827000029_InitialCreate.Designer.cs b/DiningRoom/DiningRoomDatabaseImplement/Migrations/20240827004449_InitialCreate.Designer.cs similarity index 99% rename from DiningRoom/DiningRoomDatabaseImplement/Migrations/20240827000029_InitialCreate.Designer.cs rename to DiningRoom/DiningRoomDatabaseImplement/Migrations/20240827004449_InitialCreate.Designer.cs index 642f2f4..c7ef0f7 100644 --- a/DiningRoom/DiningRoomDatabaseImplement/Migrations/20240827000029_InitialCreate.Designer.cs +++ b/DiningRoom/DiningRoomDatabaseImplement/Migrations/20240827004449_InitialCreate.Designer.cs @@ -12,7 +12,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace DiningRoomDatabaseImplement.Migrations { [DbContext(typeof(DiningRoomDatabase))] - [Migration("20240827000029_InitialCreate")] + [Migration("20240827004449_InitialCreate")] partial class InitialCreate { /// diff --git a/DiningRoom/DiningRoomDatabaseImplement/Migrations/20240827000029_InitialCreate.cs b/DiningRoom/DiningRoomDatabaseImplement/Migrations/20240827004449_InitialCreate.cs similarity index 100% rename from DiningRoom/DiningRoomDatabaseImplement/Migrations/20240827000029_InitialCreate.cs rename to DiningRoom/DiningRoomDatabaseImplement/Migrations/20240827004449_InitialCreate.cs diff --git a/DiningRoom/DiningRoomUserApp/Controllers/HomeController.cs b/DiningRoom/DiningRoomUserApp/Controllers/HomeController.cs index a423f80..4f94617 100644 --- a/DiningRoom/DiningRoomUserApp/Controllers/HomeController.cs +++ b/DiningRoom/DiningRoomUserApp/Controllers/HomeController.cs @@ -151,6 +151,14 @@ namespace DiningRoomUserApp.Controllers } return View(APIClient.GetRequest>($"api/main/getproductlist?userId={APIClient.User.Id}")); } + public IActionResult Drinks() + { + if (APIClient.User == null) + { + return Redirect("~/Home/Enter"); + } + return View(APIClient.GetRequest>($"api/main/getdrinklist?userId={APIClient.User.Id}")); + } public IActionResult CreateProduct() { if (APIClient.User == null) @@ -250,6 +258,105 @@ namespace DiningRoomUserApp.Controllers }); Response.Redirect("Products"); } + public IActionResult CreateDrink() + { + if (APIClient.User == null) + { + return Redirect("~/Home/Enter"); + } + var list = _component.ReadList(new ComponentSearchModel { UserId = APIClient.User.Id }); + var simpComponent = list.Select(x => new { ComponentId = x.Id, ComponentName = x.ComponentName }); + ViewBag.components = new MultiSelectList(simpComponent, "ComponentId", "ComponentName"); + return View(); + } + [HttpPost] + public void CreateDrink(string drinkName, double drinkPrice, int[] components) + { + if (APIClient.User == null) + { + throw new Exception("Необходима авторизация"); + } + if (drinkName.Length <=0 || drinkPrice<=0 || components.Length == 0) + { + throw new Exception("Введите данные"); + } + Dictionary _drinkComponents = new Dictionary(); + foreach (int id in components) + { + _drinkComponents.Add(id, (_component.ReadElement(new ComponentSearchModel { Id = id }), 1)); + + } + + APIClient.PostRequest("api/main/createdrink", new DrinkBindingModel + { + DrinkName = drinkName, + Cost = drinkPrice, + UserId = APIClient.User.Id, + DrinkComponents = _drinkComponents, + }); + Response.Redirect("Drinks"); + } + public IActionResult UpdateDrink() + { + if (APIClient.User == null) + { + return Redirect("~/Home/Enter"); + } + + ViewBag.Drinks = APIClient.GetRequest>($"api/main/getdrinklist?userid={APIClient.User.Id}"); + ViewBag.Components = APIClient.GetRequest>($"api/main/getcomponentlist?userid={APIClient.User.Id}"); + return View(); + } + [HttpPost] + public void UpdateDrink(int drink, string drinkName, double drinkPrice, List components) + { + if (APIClient.User == null) + { + throw new Exception("Необходима авторизация"); + } + if (drinkName.Length <= 0 || drinkPrice <= 0) + { + throw new Exception("Введите данные"); + } + Dictionary _drinkComponents = new Dictionary(); + foreach (int id in components) + { + _drinkComponents.Add(id, (new ComponentSearchModel { Id = id } as IComponentModel, 1)); + + } + APIClient.PostRequest("api/main/updatedrink", new DrinkBindingModel + { + Id = drink, + DrinkName = drinkName, + Cost = drinkPrice, + UserId = APIClient.User.Id, + DrinkComponents = _drinkComponents, + }); + Response.Redirect("Drinks"); + } + + public IActionResult DeleteDrink() + { + if (APIClient.User == null) + { + return Redirect("~/Home/Enter"); + } + ViewBag.Drinks = APIClient.GetRequest>($"api/main/getdrinklist?userId={APIClient.User.Id}"); + return View(); + } + [HttpPost] + public void DeleteDrink(int drink) + { + if (APIClient.User == null) + { + throw new Exception("Необходима авторизация"); + } + APIClient.PostRequest("api/main/deletedrink", new DrinkBindingModel + { + Id = drink + }); + Response.Redirect("Drinks"); + } [HttpGet] public IActionResult Privacy() diff --git a/DiningRoom/DiningRoomUserApp/Views/Home/CreateDrink.cshtml b/DiningRoom/DiningRoomUserApp/Views/Home/CreateDrink.cshtml new file mode 100644 index 0000000..651fc87 --- /dev/null +++ b/DiningRoom/DiningRoomUserApp/Views/Home/CreateDrink.cshtml @@ -0,0 +1,28 @@ +@using DiningRoomContracts.ViewModels + +@model ComponentViewModel +@{ + ViewData["Title"] = "CreateDrink"; +} + + + +
+

Добавить блюдо

+
+
+ + +
+ +
+ @Html.ListBox("components", (MultiSelectList)ViewBag.Components, new { @class = "form-control", size = "10" }) +
+
+
+ +
+ +
\ No newline at end of file diff --git a/DiningRoom/DiningRoomUserApp/Views/Home/DeleteDrink.cshtml b/DiningRoom/DiningRoomUserApp/Views/Home/DeleteDrink.cshtml new file mode 100644 index 0000000..c87eee1 --- /dev/null +++ b/DiningRoom/DiningRoomUserApp/Views/Home/DeleteDrink.cshtml @@ -0,0 +1,22 @@ +@{ + ViewData["Title"] = "DeleteDrink"; +} + + + + +
+

Удалить блюдо

+
+
+
+ + +
+
+ +
+ +
\ No newline at end of file diff --git a/DiningRoom/DiningRoomUserApp/Views/Home/Drinks.cshtml b/DiningRoom/DiningRoomUserApp/Views/Home/Drinks.cshtml new file mode 100644 index 0000000..2a5eac4 --- /dev/null +++ b/DiningRoom/DiningRoomUserApp/Views/Home/Drinks.cshtml @@ -0,0 +1,59 @@ +@using DiningRoomContracts.ViewModels + +@model List +@{ + ViewData["Title"] = "Drinks"; +} + + + + +
+

Список напитков

+
+
+
+ + + + + + + + + + @foreach (var item in Model) + { + + + + + + } + +
+ Номер + + Название напитка + + Цена +
+ @Html.DisplayFor(modelItem => item.Id) + + @Html.DisplayFor(modelItem => item.DrinkName) + + @Html.DisplayFor(modelItem => item.Cost) +
+ +
+
diff --git a/DiningRoom/DiningRoomUserApp/Views/Home/UpdateDrink.cshtml b/DiningRoom/DiningRoomUserApp/Views/Home/UpdateDrink.cshtml new file mode 100644 index 0000000..46d4615 --- /dev/null +++ b/DiningRoom/DiningRoomUserApp/Views/Home/UpdateDrink.cshtml @@ -0,0 +1,42 @@ +@using DiningRoomContracts.ViewModels; +@{ + ViewData["Title"] = "UpdateDrink"; +} + + + +
+

Обновить Напиток

+
+
+
+ + +
+
+ +
+
+ +
+
+
+
Продукты:
+
+ +
+
+
+
+ +
+ + +
diff --git a/DiningRoom/DiningRoomUserApp/Views/Home/UpdateProduct.cshtml b/DiningRoom/DiningRoomUserApp/Views/Home/UpdateProduct.cshtml index 73dc717..7b6d49a 100644 --- a/DiningRoom/DiningRoomUserApp/Views/Home/UpdateProduct.cshtml +++ b/DiningRoom/DiningRoomUserApp/Views/Home/UpdateProduct.cshtml @@ -36,35 +36,7 @@ -@section Scripts -{ - -} \ No newline at end of file