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 Id { get; set; }
[DisplayName("Дата начала конференции")]
[DisplayName("Дата начала бронирования")]
public DateTime? BookingDate { get; set; }
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 HotelContracts.BindingModels;
using HotelContracts.SearchModels;
@ -206,6 +207,22 @@ namespace HotelHeadwaiterApp.Controllers
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()
{
if (APIClient.Headwaiter == null)
@ -380,23 +397,23 @@ namespace HotelHeadwaiterApp.Controllers
return View(APIClient.GetRequest<List<ConferenceBookingViewModel>>($"api/conferencebooking/getconferenceBookings?headwaiterId={APIClient.Headwaiter.Id}"));
}
[HttpGet]
public Tuple<RoomViewModel, List<string>>? GetConferenceBooking(int conferencebookingId)
{
if (APIClient.Headwaiter == null)
{
throw new Exception("Необходима авторизация");
}
var result = APIClient.GetRequest<Tuple<RoomViewModel, List<string>>>($"api/conferencebooking/getconferencebooking?conferencebookingId={conferencebookingId}");
if (result == null)
{
return default;
}
[HttpGet]
public Tuple<ConferenceBookingViewModel, List<string>>? GetConferenceBooking(int conferencebookingId)
{
if (APIClient.Headwaiter == null)
{
throw new Exception("Необходима авторизация");
}
var result = APIClient.GetRequest<Tuple<ConferenceBookingViewModel, List<string>>>($"api/conferencebooking/getconferencebooking?conferencebookingId={conferencebookingId}");
if (result == null)
{
return default;
}
return result;
}
return result;
}
public IActionResult CreateConferenceBooking()
public IActionResult CreateConferenceBooking()
{
if (APIClient.Headwaiter == null)
{
@ -494,7 +511,38 @@ namespace HotelHeadwaiterApp.Controllers
Response.Redirect("ListConferenceBookings");
}
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
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)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });

View File

@ -8,6 +8,7 @@
<ItemGroup>
<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="PdfSharp.MigraDoc.Standard" Version="1.51.15" />
</ItemGroup>

View File

@ -33,7 +33,7 @@
Номер
</th>
<th class="u-border-1 u-border-grey-50 u-table-cell">
Название зала
Название помещения
</th>
<th class="u-border-1 u-border-grey-50 u-table-cell">
Название конференций
@ -53,7 +53,7 @@
@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>
}

View File

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

View File

@ -33,10 +33,10 @@
Номер
</th>
<th class="u-border-1 u-border-grey-50 u-table-cell">
Корпус
Название
</th>
<th class="u-border-1 u-border-grey-50 u-table-cell">
Название
Корпус
</th>
<th class="u-border-1 u-border-grey-50 u-table-cell">
Цена
@ -51,10 +51,10 @@
@Html.DisplayFor(modelItem => item.Id)
</td>
<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 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 class="u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell">
@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({
method: "GET",
url: "/Home/GetConferenceBooking",
data: { conferenceBookingId: conferenceBooking },
data: { conferencebookingId: conferenceBooking },
success: function (result) {
$('#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) {
console.log("#" + n);
$("#" + n).attr("selected", "selected")

View File

@ -16,19 +16,19 @@
<div class="form-group">
<label class="u-label u-text-custom-color-1 u-label-1">Название обеда</label>
<input type="text"
id="lunchName"
placeholder="Введите название обеда"
name="lunchName"
class="form-control" />
id="lunchName"
placeholder="Введите название обеда"
name="lunchName"
class="form-control" />
</div>
<div class="form-group">
<label class="u-label u-text-custom-color-1 u-label-2">Стоимость обеда</label>
<input type="number"
id="lunchPrice"
placeholder="Введите стоимость обеда"
name="lunchPrice"
class="form-control"
step="1" />
id="lunchPrice"
placeholder="Введите стоимость обеда"
name="lunchPrice"
class="form-control"
step="1" />
</div>
<br>
<div class="u-container-layout u-container-layout-2">
@ -48,8 +48,8 @@
url: "/Home/GetLunch",
data: { lunchId: lunch },
success: function (result) {
$('#lunchName').val(result.LunchName);
$('#lunchPrice').val(result.LunchPrice);
$('#lunchName').val(result.lunchName);
$('#lunchPrice').val(result.lunchPrice);
}
});
};

View File

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

View File

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

View File

@ -68,7 +68,27 @@ namespace HotelRestApi.Controllers
}
}
[HttpPost]
[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]
public void CreateRoom(RoomBindingModel model)
{
try