From 6fb7d5e29b5e8074f4e5696cf21aa4f372bf8dbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=B0=D1=88=D0=B8=D0=BD=20=D0=9C=D0=B0=D0=BA=D1=81?= =?UTF-8?q?=D0=B8=D0=BC?= Date: Thu, 18 May 2023 01:11:54 +0400 Subject: [PATCH] =?UTF-8?q?=D0=95=D1=85=20:<=20=D0=AF=20=D0=B5=D1=89=D0=B5?= =?UTF-8?q?=20new()=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=B2?= =?UTF-8?q?=20=D1=82=D0=B2=D0=BE=D1=8E=20=D1=87=D0=B0=D1=81=D1=82=D1=8C,?= =?UTF-8?q?=20=D0=BF=D0=BE=D1=81=D0=BE=D0=BC=D1=82=D1=80=D0=B8,=20=D0=B2?= =?UTF-8?q?=D0=B4=D1=80=D1=83=D0=B3=20=D0=BE=D0=BD=20=D0=BD=D0=B5=20=D0=BD?= =?UTF-8?q?=D1=83=D0=B6=D0=B5=D0=BD=20:(?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/HomeController.cs | 30 ++++++++++++++++++ .../AddConferenceBookingToConference.cshtml | 25 +++++++++++++++ .../Views/Shared/_Layout.cshtml | 2 ++ .../BusinessLogics/ReportLogicHeadwaiter.cs | 2 +- .../ViewModels/ConferenceBookingViewModel.cs | 4 ++- .../Models/Conference.cs | 2 +- .../Controllers/MainController.cs | 31 +++++++++++++++++++ 7 files changed, 93 insertions(+), 3 deletions(-) create mode 100644 Hotel/HostrelHeadwaiterApp/Views/Home/AddConferenceBookingToConference.cshtml diff --git a/Hotel/HostrelHeadwaiterApp/Controllers/HomeController.cs b/Hotel/HostrelHeadwaiterApp/Controllers/HomeController.cs index e6ed3f5..f0c0b29 100644 --- a/Hotel/HostrelHeadwaiterApp/Controllers/HomeController.cs +++ b/Hotel/HostrelHeadwaiterApp/Controllers/HomeController.cs @@ -524,5 +524,35 @@ namespace HostrelHeadwaiterApp.Controllers } return View(APIClient.GetRequest>($"api/main/getconferenceBookinglist?headwaiterId={APIClient.Headwaiter.Id}")); } + + [HttpGet] + public IActionResult AddConferenceBookingToConference() + { + if (APIClient.Headwaiter == null) + { + return Redirect("~/Home/Enter"); + } + ViewBag.Conferences = APIClient.GetRequest>($"api/main/getconferencelist?organiserId={APIClient.Headwaiter.Id}"); + ViewBag.ConferenceBookings = APIClient.GetRequest>($"api/main/getconferenceBookings"); + return View(); + } + + [HttpPost] + public void AddConferenceBookingToConference(int conference, int conferenceBooking) + { + if (APIClient.Headwaiter == null) + { + throw new Exception("Вы как сюда попали? Сюда вход только авторизованным"); + } + var conferenceBookingElem = APIClient.GetRequest($"api/main/getconferenceBookingbyid?conferenceBookingId={conferenceBooking}"); + APIClient.PostRequest("api/main/updateconferenceBooking", new ConferenceBookingBindingModel + { + Id = conferenceBooking, + ConferenceId = conference, + NameHall = conferenceBookingElem.NameHall, + HeadwaiterId = conferenceBookingElem.HeadwaiterId, + }); + Response.Redirect("ListConferences"); + } } } \ No newline at end of file diff --git a/Hotel/HostrelHeadwaiterApp/Views/Home/AddConferenceBookingToConference.cshtml b/Hotel/HostrelHeadwaiterApp/Views/Home/AddConferenceBookingToConference.cshtml new file mode 100644 index 0000000..8137624 --- /dev/null +++ b/Hotel/HostrelHeadwaiterApp/Views/Home/AddConferenceBookingToConference.cshtml @@ -0,0 +1,25 @@ +@using HotelContracts.ViewModels; +@using HotelDataModels.Models; + +@{ + ViewData["Title"] = "AddConferenceBookingToConference"; +} + +
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
\ No newline at end of file diff --git a/Hotel/HostrelHeadwaiterApp/Views/Shared/_Layout.cshtml b/Hotel/HostrelHeadwaiterApp/Views/Shared/_Layout.cshtml index 5b3b736..6cbae9d 100644 --- a/Hotel/HostrelHeadwaiterApp/Views/Shared/_Layout.cshtml +++ b/Hotel/HostrelHeadwaiterApp/Views/Shared/_Layout.cshtml @@ -29,6 +29,8 @@ Бронирование + Привязка к конференациям + Метрдотель Регистрация diff --git a/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicHeadwaiter.cs b/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicHeadwaiter.cs index bbcc96a..ef2dd77 100644 --- a/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicHeadwaiter.cs +++ b/Hotel/HotelBusinessLogic/BusinessLogics/ReportLogicHeadwaiter.cs @@ -95,7 +95,7 @@ namespace HotelBusinessLogic.BusinessLogics _saveToExcel.CreateReport(new ExcelInfoHeadwaiter { FileName = model.FileName, - Title = "Список изделий", + Title = "Список участников", MealPlanDinner = GetMealPlanDinner() }); } diff --git a/Hotel/HotelContracts/ViewModels/ConferenceBookingViewModel.cs b/Hotel/HotelContracts/ViewModels/ConferenceBookingViewModel.cs index 2798680..513d109 100644 --- a/Hotel/HotelContracts/ViewModels/ConferenceBookingViewModel.cs +++ b/Hotel/HotelContracts/ViewModels/ConferenceBookingViewModel.cs @@ -20,12 +20,14 @@ namespace HotelContracts.ViewModels public string NameHall { get; set; } = string.Empty; public Dictionary ConferenceBookingDinners { get; set; } = new(); + public Dictionary ConferenceConferenceBookings { get; set; } = new(); public ConferenceBookingViewModel() { } [JsonConstructor] - public ConferenceBookingViewModel(Dictionary ConferenceBookingDinners) + public ConferenceBookingViewModel(Dictionary ConferenceBookingDinners, Dictionary ConferenceConferenceBookings) { this.ConferenceBookingDinners = ConferenceBookingDinners.ToDictionary(x => x.Key, x => x.Value as IDinnerModel); + this.ConferenceConferenceBookings = ConferenceConferenceBookings.ToDictionary(x => x.Key, x => x.Value as IConferenceBookingModel); } } } diff --git a/Hotel/HotelDataBaseImplement/Models/Conference.cs b/Hotel/HotelDataBaseImplement/Models/Conference.cs index 72094fc..f87dfe4 100644 --- a/Hotel/HotelDataBaseImplement/Models/Conference.cs +++ b/Hotel/HotelDataBaseImplement/Models/Conference.cs @@ -39,7 +39,7 @@ namespace HotelDataBaseImplement.Models } [ForeignKey("ConferenceId")] - public virtual List ConferenceBookings { get; set; } + public virtual List ConferenceBookings { get; set; } = new(); [ForeignKey("ConferenceId")] public virtual List Members { get; set; } = new(); diff --git a/Hotel/HotelRestApi/Controllers/MainController.cs b/Hotel/HotelRestApi/Controllers/MainController.cs index daa7284..e64c2ff 100644 --- a/Hotel/HotelRestApi/Controllers/MainController.cs +++ b/Hotel/HotelRestApi/Controllers/MainController.cs @@ -581,5 +581,36 @@ namespace HotelRestApi.Controllers throw; } } + + [HttpGet] + public List? GetConferenceBookings() + { + try + { + return _conferenceBooking.ReadList(null); + } + catch (Exception ex) + { + _logger.LogError(ex, "Ошибка получения списка номеров"); + throw; + } + } + + [HttpGet] + public ConferenceBookingViewModel GetConferenceBookingById(int conferenceBookingId) + { + try + { + var elem = _conferenceBooking.ReadElement(new ConferenceBookingSearchModel { Id = conferenceBookingId }); + if (elem == null) + return null; + return elem; + } + catch (Exception ex) + { + _logger.LogError(ex, "Ошибка получения по id={Id}", conferenceBookingId); + throw; + } + } } }