fix view update

This commit is contained in:
Вячеслав Иванов 2024-05-01 17:07:23 +04:00
parent 737cba3349
commit cf351894ee
12 changed files with 151 additions and 50 deletions

View File

@ -10,7 +10,7 @@ namespace HotelContracts.ViewModels
public int HeadwaiterId { get; set; } public int HeadwaiterId { get; set; }
public int Id { get; set; } public int Id { get; set; }
[DisplayName("Дата начала конференции")] [DisplayName("Дата начала бронирования")]
public DateTime? BookingDate { get; set; } public DateTime? BookingDate { get; set; }
public string ConfName { get; set; } = string.Empty; public string ConfName { get; set; } = string.Empty;

View File

@ -1,4 +1,5 @@
using DocumentFormat.OpenXml.Office2010.Excel; using DocumentFormat.OpenXml.Drawing.Spreadsheet;
using DocumentFormat.OpenXml.Office2010.Excel;
using HostrelHeadwaiterApp; using HostrelHeadwaiterApp;
using HotelContracts.BindingModels; using HotelContracts.BindingModels;
using HotelContracts.SearchModels; using HotelContracts.SearchModels;
@ -206,6 +207,22 @@ namespace HotelHeadwaiterApp.Controllers
Response.Redirect("ListLunches"); Response.Redirect("ListLunches");
} }
[HttpGet]
public LunchViewModel? GetLunch(int lunchId)
{
if (APIClient.Headwaiter == null)
{
throw new Exception("Необходима авторизация");
}
var result = APIClient.GetRequest<LunchViewModel>($"api/lunch/getlunch?lunchId={lunchId}");
if (result == null)
{
return default;
}
return result;
}
public IActionResult DeleteLunch() public IActionResult DeleteLunch()
{ {
if (APIClient.Headwaiter == null) if (APIClient.Headwaiter == null)
@ -381,13 +398,13 @@ namespace HotelHeadwaiterApp.Controllers
} }
[HttpGet] [HttpGet]
public Tuple<RoomViewModel, List<string>>? GetConferenceBooking(int conferencebookingId) public Tuple<ConferenceBookingViewModel, List<string>>? GetConferenceBooking(int conferencebookingId)
{ {
if (APIClient.Headwaiter == null) if (APIClient.Headwaiter == null)
{ {
throw new Exception("Необходима авторизация"); throw new Exception("Необходима авторизация");
} }
var result = APIClient.GetRequest<Tuple<RoomViewModel, List<string>>>($"api/conferencebooking/getconferencebooking?conferencebookingId={conferencebookingId}"); var result = APIClient.GetRequest<Tuple<ConferenceBookingViewModel, List<string>>>($"api/conferencebooking/getconferencebooking?conferencebookingId={conferencebookingId}");
if (result == null) if (result == null)
{ {
return default; return default;
@ -494,6 +511,37 @@ namespace HotelHeadwaiterApp.Controllers
Response.Redirect("ListConferenceBookings"); Response.Redirect("ListConferenceBookings");
} }
public IActionResult RoomMealPlans()
{
if (APIClient.Headwaiter == null)
{
return Redirect("~/Home/Enter");
}
ViewBag.Rooms = APIClient.GetRequest<List<RoomViewModel>>($"api/room/getrooms?headwaiterId={APIClient.Headwaiter.Id}");
ViewBag.MealPlans = APIClient.GetRequest<List<MealPlanViewModel>>($"api/mealplan/getmealplans");
return View();
}
[HttpPost]
public void RoomMealPlans(int room, int mealplan)
{
if (APIClient.Headwaiter == null)
{
throw new Exception("Вы как сюда попали? Сюда вход только авторизованным");
}
var roomElem = APIClient.GetRequest<RoomViewModel>($"api/room/getroombyid?roomId={room}");
APIClient.PostRequest("api/room/updateroom", new RoomBindingModel
{
Id = room,
HeadwaiterId = APIClient.Headwaiter.Id,
RoomName = roomElem.RoomName,
RoomFrame = roomElem.RoomFrame,
RoomPrice = roomElem.RoomPrice,
MealPlanId = mealplan
});
Response.Redirect("Index");
}
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error() public IActionResult Error()
{ {

View File

@ -8,6 +8,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNet.WebPages" Version="3.3.0" /> <PackageReference Include="Microsoft.AspNet.WebPages" Version="3.3.0" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.16" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="PdfSharp.MigraDoc.Standard" Version="1.51.15" /> <PackageReference Include="PdfSharp.MigraDoc.Standard" Version="1.51.15" />
</ItemGroup> </ItemGroup>

View File

@ -33,7 +33,7 @@
Номер Номер
</th> </th>
<th class="u-border-1 u-border-grey-50 u-table-cell"> <th class="u-border-1 u-border-grey-50 u-table-cell">
Название зала Название помещения
</th> </th>
<th class="u-border-1 u-border-grey-50 u-table-cell"> <th class="u-border-1 u-border-grey-50 u-table-cell">
Название конференций Название конференций
@ -53,7 +53,7 @@
@if (item.ConferenceId == null) @if (item.ConferenceId == null)
{ {
<td class="u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell"> <td class="u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell">
Зал свободен Вакантно
</td> </td>
} }

View File

@ -30,10 +30,10 @@
Номер Номер
</th> </th>
<th class="u-border-1 u-border-grey-50 u-table-cell"> <th class="u-border-1 u-border-grey-50 u-table-cell">
Цена обеда Название обеда
</th> </th>
<th class="u-border-1 u-border-grey-50 u-table-cell"> <th class="u-border-1 u-border-grey-50 u-table-cell">
Название обеда Цена обеда
</th> </th>
</tr> </tr>
</thead> </thead>
@ -45,10 +45,10 @@
@Html.DisplayFor(modelItem => item.Id) @Html.DisplayFor(modelItem => item.Id)
</td> </td>
<td class="u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell"> <td class="u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell">
@Html.DisplayFor(modelItem => item.LunchPrice) @Html.DisplayFor(modelItem => item.LunchName)
</td> </td>
<td class="u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell"> <td class="u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell">
@Html.DisplayFor(modelItem => item.LunchName) @Html.DisplayFor(modelItem => item.LunchPrice)
</td> </td>
</tr> </tr>
} }

View File

@ -33,10 +33,10 @@
Номер Номер
</th> </th>
<th class="u-border-1 u-border-grey-50 u-table-cell"> <th class="u-border-1 u-border-grey-50 u-table-cell">
Корпус Название
</th> </th>
<th class="u-border-1 u-border-grey-50 u-table-cell"> <th class="u-border-1 u-border-grey-50 u-table-cell">
Название Корпус
</th> </th>
<th class="u-border-1 u-border-grey-50 u-table-cell"> <th class="u-border-1 u-border-grey-50 u-table-cell">
Цена Цена
@ -51,10 +51,10 @@
@Html.DisplayFor(modelItem => item.Id) @Html.DisplayFor(modelItem => item.Id)
</td> </td>
<td class="u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell"> <td class="u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell">
@Html.DisplayFor(modelItem => item.RoomFrame) @Html.DisplayFor(modelItem => item.RoomName)
</td> </td>
<td class="u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell"> <td class="u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell">
@Html.DisplayFor(modelItem => item.RoomName) @Html.DisplayFor(modelItem => item.RoomFrame)
</td> </td>
<td class="u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell"> <td class="u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell">
@Html.DisplayFor(modelItem => item.RoomPrice) @Html.DisplayFor(modelItem => item.RoomPrice)

View File

@ -0,0 +1,28 @@
@using HotelContracts.ViewModels;
@{
ViewData["Title"] = "RoomMealPlans";
}
<div class="text-center">
<h2 class="display-4">Связывание номера и плана питания</h2>
</div>
<form method="post">
<div class="row">
<div class="col-4">Номер:</div>
<div class="col-8">
<select id="room" name="room" class="form-control" asp-items="@(new SelectList(@ViewBag.Rooms, "Id", "RoomName"))"></select>
</div>
</div>
<div class="row">
<div class="col-4">План питания:</div>
<div class="col-8">
<select id="mealplan" name="mealplan" class="form-control" asp-items="@(new SelectList(@ViewBag.MealPlans, "Id", "MealPlanName"))"></select>
</div>
</div>
<div class="row">
<div class="col-8"></div>
<div class="col-4"><input type="submit" value="Сохранить" class="btn btn-primary" /></div>
</div>
</form>

View File

@ -49,10 +49,11 @@
$.ajax({ $.ajax({
method: "GET", method: "GET",
url: "/Home/GetConferenceBooking", url: "/Home/GetConferenceBooking",
data: { conferenceBookingId: conferenceBooking }, data: { conferencebookingId: conferenceBooking },
success: function (result) { success: function (result) {
$('#nameHall').val(result.item1.nameHall); $('#nameHall').val(result.item1.nameHall);
$('#bookingDate').val(result.item1.bookingDate); var bookingDate = new Date(result.item1.bookingDate).toISOString().slice(0, 16);
$('#bookingDate').val(bookingDate);
$.map(result.item2, function (n) { $.map(result.item2, function (n) {
console.log("#" + n); console.log("#" + n);
$("#" + n).attr("selected", "selected") $("#" + n).attr("selected", "selected")

View File

@ -48,8 +48,8 @@
url: "/Home/GetLunch", url: "/Home/GetLunch",
data: { lunchId: lunch }, data: { lunchId: lunch },
success: function (result) { success: function (result) {
$('#lunchName').val(result.LunchName); $('#lunchName').val(result.lunchName);
$('#lunchPrice').val(result.LunchPrice); $('#lunchPrice').val(result.lunchPrice);
} }
}); });
}; };

View File

@ -31,6 +31,9 @@
<li class="nav-item"> <li class="nav-item">
<a class="nav-link " asp-area="" asp-controller="Home" asp-action="ListConferenceBookings">Бронирование</a> <a class="nav-link " asp-area="" asp-controller="Home" asp-action="ListConferenceBookings">Бронирование</a>
</li> </li>
<li class="nav-item">
<a class="nav-link " asp-area="" asp-controller="Home" asp-action="RoomMealPlans">Связывание</a>
</li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link " asp-area="" asp-controller="Home" asp-action="Privacy">Личные данные</a> <a class="nav-link " asp-area="" asp-controller="Home" asp-action="Privacy">Личные данные</a>
</li> </li>

View File

@ -125,7 +125,7 @@ namespace HotelOrganiserApp.Controllers
{ {
return Redirect("~/Home/Enter"); return Redirect("~/Home/Enter");
} }
return View(APIClient.GetRequest<List<MemberViewModel>>($"api/member/getmemberlist?organiserId={APIClient.Organiser.Id}")); return View(APIClient.GetRequest<List<MemberViewModel>>($"api/member/getmembers?organiserId={APIClient.Organiser.Id}"));
} }
public IActionResult CreateMember() public IActionResult CreateMember()
@ -165,7 +165,7 @@ namespace HotelOrganiserApp.Controllers
{ {
return Redirect("~/Home/Enter"); return Redirect("~/Home/Enter");
} }
ViewBag.Members = APIClient.GetRequest<List<MemberViewModel>>($"api/member/getmemberlist?organiserId={APIClient.Organiser.Id}"); ViewBag.Members = APIClient.GetRequest<List<MemberViewModel>>($"api/member/getmembers?organiserId={APIClient.Organiser.Id}");
return View(); return View();
} }
@ -212,7 +212,7 @@ namespace HotelOrganiserApp.Controllers
{ {
return Redirect("~/Home/Enter"); return Redirect("~/Home/Enter");
} }
ViewBag.Members = APIClient.GetRequest<List<MemberViewModel>>($"api/member/getmemberlist?organiserId={APIClient.Organiser.Id}"); ViewBag.Members = APIClient.GetRequest<List<MemberViewModel>>($"api/member/getmembers?organiserId={APIClient.Organiser.Id}");
return View(); return View();
} }
@ -256,7 +256,7 @@ namespace HotelOrganiserApp.Controllers
{ {
return Redirect("~/Home/Enter"); return Redirect("~/Home/Enter");
} }
return View(APIClient.GetRequest<List<MealPlanViewModel>>($"api/mealplan/getmealplanlist?organiserId={APIClient.Organiser.Id}")); return View(APIClient.GetRequest<List<MealPlanViewModel>>($"api/mealplan/getmealplans?organiserId={APIClient.Organiser.Id}"));
} }
public IActionResult CreateMealPlan() public IActionResult CreateMealPlan()
@ -265,7 +265,7 @@ namespace HotelOrganiserApp.Controllers
{ {
return Redirect("~/Home/Enter"); return Redirect("~/Home/Enter");
} }
ViewBag.Member = APIClient.GetRequest<List<MemberViewModel>>($"api/member/getmemberlist?organiserId={APIClient.Organiser.Id}"); ViewBag.Member = APIClient.GetRequest<List<MemberViewModel>>($"api/member/getmembers?organiserId={APIClient.Organiser.Id}");
return View(); return View();
} }
@ -310,8 +310,8 @@ namespace HotelOrganiserApp.Controllers
{ {
return Redirect("~/Home/Enter"); return Redirect("~/Home/Enter");
} }
ViewBag.MealPlans = APIClient.GetRequest<List<MealPlanViewModel>>($"api/mealplan/getmealplanlist?organiserId={APIClient.Organiser.Id}"); ViewBag.MealPlans = APIClient.GetRequest<List<MealPlanViewModel>>($"api/mealplan/getmealplans?organiserId={APIClient.Organiser.Id}");
ViewBag.Member = APIClient.GetRequest<List<MemberViewModel>>($"api/member/getmemberlist?organiserId={APIClient.Organiser.Id}"); ViewBag.Member = APIClient.GetRequest<List<MemberViewModel>>($"api/member/getmembers?organiserId={APIClient.Organiser.Id}");
return View(); return View();
} }
@ -385,7 +385,7 @@ namespace HotelOrganiserApp.Controllers
{ {
return Redirect("~/Home/Enter"); return Redirect("~/Home/Enter");
} }
ViewBag.MealPlans = APIClient.GetRequest<List<MealPlanViewModel>>($"api/mealplan/getmealplanlist?organiserId={APIClient.Organiser.Id}"); ViewBag.MealPlans = APIClient.GetRequest<List<MealPlanViewModel>>($"api/mealplan/getmealplans?organiserId={APIClient.Organiser.Id}");
return View(); return View();
} }

View File

@ -68,6 +68,26 @@ namespace HotelRestApi.Controllers
} }
} }
[HttpGet]
public RoomViewModel GetRoomById(int roomId)
{
try
{
var elem = _room.ReadElement(new RoomSearchModel { Id = roomId });
if (elem == null)
{
return null;
}
elem.RoomLunches = null!;
return elem;
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка получения комнаты по id={Id}", roomId);
throw;
}
}
[HttpPost] [HttpPost]
public void CreateRoom(RoomBindingModel model) public void CreateRoom(RoomBindingModel model)
{ {