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"; +} + + + + + Обновить Напиток + + + + Напитки: + + + + + + + + + + + Продукты: + + + @foreach (var component in ViewBag.Components) + { + @component.ComponentName + } + + + + + + Сохранить + + + Назад + + + 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