From 436bb273443536ad48b9511b67cfc6d573dd4393 Mon Sep 17 00:00:00 2001 From: Yourdax Date: Tue, 27 Aug 2024 15:39:57 +0400 Subject: [PATCH] =?UTF-8?q?+=D0=BF=D1=80=D0=B8=D0=B2=D1=8F=D0=B7=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=B8=20=D0=BF=D0=BE=D0=B4=D0=B3=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=D0=BA=D0=B0=20=D0=BA=20=D0=BE=D1=82=D1=87=D0=B5=D1=82?= =?UTF-8?q?=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/MainController.cs | 22 ++++- .../Controllers/HomeController.cs | 96 +++++++++++++++++++ .../Views/Home/AddProductToOrder.cshtml | 24 +++++ .../Views/Home/ComponentOrderReport.cshtml | 39 ++++++++ .../Views/Home/CreateDrink.cshtml | 2 +- .../Views/Shared/_Layout.cshtml | 4 +- 6 files changed, 181 insertions(+), 6 deletions(-) create mode 100644 DiningRoom/DiningRoomUserApp/Views/Home/AddProductToOrder.cshtml create mode 100644 DiningRoom/DiningRoomUserApp/Views/Home/ComponentOrderReport.cshtml diff --git a/DiningRoom/DiningRoomRestApi/Controllers/MainController.cs b/DiningRoom/DiningRoomRestApi/Controllers/MainController.cs index 0609565..01266e8 100644 --- a/DiningRoom/DiningRoomRestApi/Controllers/MainController.cs +++ b/DiningRoom/DiningRoomRestApi/Controllers/MainController.cs @@ -46,13 +46,13 @@ namespace DiningRoomRestApi.Controllers } [HttpGet] - public List? GetOrderList(int Id) + public List? GetOrderList(int UserId) { try { return _order.ReadList(new OrderSearchModel { - Id = Id, + UserId = UserId, }); } catch (Exception ex) @@ -397,5 +397,21 @@ namespace DiningRoomRestApi.Controllers throw; } } - } + [HttpGet] + public ProductViewModel GetProductById(int productId) + { + try + { + var elem = _product.ReadElement(new ProductSearchModel { Id = productId }); + if (elem == null) + return null; + return elem; + } + catch (Exception ex) + { + _logger.LogError(ex, "Ошибка получения по id={Id}", productId); + throw; + } + } + } } diff --git a/DiningRoom/DiningRoomUserApp/Controllers/HomeController.cs b/DiningRoom/DiningRoomUserApp/Controllers/HomeController.cs index 4f94617..bf638e2 100644 --- a/DiningRoom/DiningRoomUserApp/Controllers/HomeController.cs +++ b/DiningRoom/DiningRoomUserApp/Controllers/HomeController.cs @@ -15,6 +15,7 @@ using System.Globalization; using System.Numerics; using DiningRoomDataModels.Enums; using System.Reflection; +using DocumentFormat.OpenXml.Office2010.Excel; namespace DiningRoomUserApp.Controllers { @@ -357,6 +358,101 @@ namespace DiningRoomUserApp.Controllers }); Response.Redirect("Drinks"); } + [HttpGet] + public IActionResult AddProductToOrder() + { + + if (APIClient.User == null) + { + return Redirect("~/Home/Enter"); + } + ViewBag.Orders = APIClient.GetRequest>($"api/main/getorderlist?UserId={APIClient.User.Id}"); + ViewBag.Products = APIClient.GetRequest>($"api/main/getproductlist?UserId={APIClient.User.Id}"); + return View(); + } + [HttpPost] + public void AddProductToOrder(int product, int order) + { + if (APIClient.User == null) + { + throw new Exception("Вы как сюда попали? Сюда вход только авторизованным"); + } + APIClient.PostRequest("api/main/updateorder", new OrderBindingModel + { + Id = order, + ProductId = product, + Status = OrderStatus.Принят, + }); + Response.Redirect("Products"); + } + + [HttpGet] + public IActionResult ComponentOrderReport() + { + if (APIClient.User == null) + { + return Redirect("~/Home/Enter"); + } + ViewBag.Components = APIClient.GetRequest>($"api/main/getcomponentlist?userid={APIClient.User.Id}"); + return View(); + } + + //[HttpPost] + //public void ComponentOrderReport(List components, string type) + //{ + // if (APIClient.User == null) + // { + // throw new Exception("Вы как суда попали? Суда вход только авторизованным"); + // } + + // if (components.Count <= 0) + // { + // throw new Exception("Количество должно быть больше 0"); + // } + + // if (string.IsNullOrEmpty(type)) + // { + // throw new Exception("Неверный тип отчета"); + // } + + // if (type == "docx") + // { + // APIClient.PostRequest("api/reportadministrator/createmealplanlistwordfile", new ReportComponentsBindingModel + // { + // Dinners = dinners, + // FileName = "C:\\wordfile.docx" + // }); + // Response.Redirect("GetWordFile"); + // } + // else + // { + // APIClient.PostRequest("api/reportadministrator/createmealplanlistexcelfile", new ReportComponentsBindingModel + // { + // Dinners = dinners, + // FileName = "C:\\exelfile.xlsx" + // }); + // Response.Redirect("GetExcelFile"); + // } + //} + + [HttpGet] + public IActionResult GetWordFile() + { + if (APIClient.User == null) + { + return Redirect("~/Home/Enter"); + } + return new PhysicalFileResult("C:\\wordfile.docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); + } + + public IActionResult GetExcelFile() + { + if (APIClient.User == null) + { + return Redirect("~/Home/Enter"); + } + return new PhysicalFileResult("C:\\exelfile.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + } [HttpGet] public IActionResult Privacy() diff --git a/DiningRoom/DiningRoomUserApp/Views/Home/AddProductToOrder.cshtml b/DiningRoom/DiningRoomUserApp/Views/Home/AddProductToOrder.cshtml new file mode 100644 index 0000000..32150b0 --- /dev/null +++ b/DiningRoom/DiningRoomUserApp/Views/Home/AddProductToOrder.cshtml @@ -0,0 +1,24 @@ + +@{ + ViewData["Title"] = "AddProductToOrder"; +} + + + + +
+

Привязка блюда к заказу

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

Отчет (word/excel)

+
+
+
+ +
+ + +
+
+ + +
+
+
+
+
Продукты:
+
+ +
+
+
+
+ +
+
\ No newline at end of file diff --git a/DiningRoom/DiningRoomUserApp/Views/Home/CreateDrink.cshtml b/DiningRoom/DiningRoomUserApp/Views/Home/CreateDrink.cshtml index 651fc87..b62c1ea 100644 --- a/DiningRoom/DiningRoomUserApp/Views/Home/CreateDrink.cshtml +++ b/DiningRoom/DiningRoomUserApp/Views/Home/CreateDrink.cshtml @@ -8,7 +8,7 @@
-

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

+

Добавить напиток

diff --git a/DiningRoom/DiningRoomUserApp/Views/Shared/_Layout.cshtml b/DiningRoom/DiningRoomUserApp/Views/Shared/_Layout.cshtml index 91ba99f..0c2d0b6 100644 --- a/DiningRoom/DiningRoomUserApp/Views/Shared/_Layout.cshtml +++ b/DiningRoom/DiningRoomUserApp/Views/Shared/_Layout.cshtml @@ -59,7 +59,7 @@