MealPlan почти готово

This commit is contained in:
Анна Забродина 2024-04-29 00:18:57 +04:00
parent b969347e3e
commit 642b92bd23
4 changed files with 59 additions and 33 deletions

View File

@ -1,6 +1,11 @@
using DocumentFormat.OpenXml.Wordprocessing; using DocumentFormat.OpenXml.Drawing.Diagrams;
using DocumentFormat.OpenXml.Wordprocessing;
using HotelBusinessLogic.BusinessLogics;
using HotelContracts.BindingModels; using HotelContracts.BindingModels;
using HotelContracts.BusinessLogicsContracts;
using HotelContracts.SearchModels;
using HotelContracts.ViewModels; using HotelContracts.ViewModels;
using HotelDataModels.Models;
using HotelOrganiserApp.Models; using HotelOrganiserApp.Models;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using System.Diagnostics; using System.Diagnostics;
@ -260,11 +265,12 @@ namespace HotelOrganiserApp.Controllers
{ {
return Redirect("~/Home/Enter"); return Redirect("~/Home/Enter");
} }
ViewBag.Member = APIClient.GetRequest<List<MemberViewModel>>($"api/member/getmemberlist?organiserId={APIClient.Organiser.Id}");
return View(); return View();
} }
[HttpPost] [HttpPost]
public void CreateMealPlan(string mealPlanName, double mealPlanPrice) public void CreateMealPlan(string mealPlanName, double mealPlanPrice, List<int> memberselect)
{ {
if (APIClient.Organiser == null) if (APIClient.Organiser == null)
{ {
@ -282,11 +288,18 @@ namespace HotelOrganiserApp.Controllers
{ {
throw new Exception("Стоимость не может быть отрицательной"); throw new Exception("Стоимость не может быть отрицательной");
} }
Dictionary<int, IMemberModel> member = new Dictionary<int, IMemberModel>();
foreach (int members in memberselect)
{
member.Add(members, new MemberSearchModel { Id = members } as IMemberModel);
}
APIClient.PostRequest("api/mealplan/createmealplan", new MealPlanBindingModel APIClient.PostRequest("api/mealplan/createmealplan", new MealPlanBindingModel
{ {
MealPlanName = mealPlanName, MealPlanName = mealPlanName,
MealPlanPrice = mealPlanPrice, MealPlanPrice = mealPlanPrice,
OrganiserId = APIClient.Organiser.Id, OrganiserId = APIClient.Organiser.Id,
MealPlanMembers = member
}); });
Response.Redirect("ListMealPlans"); Response.Redirect("ListMealPlans");
} }
@ -298,11 +311,12 @@ 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/getmealplanlist?organiserId={APIClient.Organiser.Id}");
ViewBag.Member = APIClient.GetRequest<List<MemberViewModel>>($"api/member/getmemberlist?organiserId={APIClient.Organiser.Id}");
return View(); return View();
} }
[HttpPost] [HttpPost]
public void UpdateMealPlan(int mealPlan, string mealPlanName, double mealPlanPrice) public void UpdateMealPlan(int mealPlan, string mealPlanName, double mealPlanPrice, List<int> memberselect)
{ {
if (APIClient.Organiser == null) if (APIClient.Organiser == null)
{ {
@ -320,12 +334,18 @@ namespace HotelOrganiserApp.Controllers
{ {
throw new Exception("Стоимость не может быть отрицательной"); throw new Exception("Стоимость не может быть отрицательной");
} }
Dictionary<int, IMemberModel> member = new Dictionary<int, IMemberModel>();
foreach (int members in memberselect)
{
member.Add(members, new MemberSearchModel { Id = members } as IMemberModel);
}
APIClient.PostRequest("api/mealplan/updatemealplan", new MealPlanBindingModel APIClient.PostRequest("api/mealplan/updatemealplan", new MealPlanBindingModel
{ {
Id = mealPlan, Id = mealPlan,
MealPlanName = mealPlanName, MealPlanName = mealPlanName,
MealPlanPrice = mealPlanPrice, MealPlanPrice = mealPlanPrice,
OrganiserId = APIClient.Organiser.Id OrganiserId = APIClient.Organiser.Id,
MealPlanMembers = member
}); });
Response.Redirect("ListMealPlans"); Response.Redirect("ListMealPlans");
} }

View File

@ -7,6 +7,9 @@ using HotelDataBaseImplement.Implemets;
using HotelOrganiserApp; using HotelOrganiserApp;
var builder = WebApplication.CreateBuilder(args); var builder = WebApplication.CreateBuilder(args);
builder.Services.AddTransient<IMemberLogic, MemberLogic>();
builder.Services.AddTransient<IMealPlanLogic, MealPlanLogic>();
builder.Services.AddTransient<IConferenceLogic, ConferenceLogic>();
builder.Services.AddTransient<IReportOrganiserLogic, ReportLogicOrganiser>(); builder.Services.AddTransient<IReportOrganiserLogic, ReportLogicOrganiser>();
builder.Services.AddTransient<IMemberStorage, MemberStorage>(); builder.Services.AddTransient<IMemberStorage, MemberStorage>();
builder.Services.AddTransient<IMealPlanStorage, MealPlanStorage>(); builder.Services.AddTransient<IMealPlanStorage, MealPlanStorage>();

View File

@ -1,4 +1,7 @@
@{ @using HotelContracts.ViewModels;
@using HotelDataModels.Models;
@{
ViewData["Title"] = "CreateMealPlan"; ViewData["Title"] = "CreateMealPlan";
} }
@ -23,6 +26,18 @@
class="form-control" class="form-control"
step="1" /> step="1" />
<br> <br>
<div class="row">
<div class="col-4">Участники:</div>
<div class="col-8">
<select name="memberselect" class="form-control" multiple size="6" id="memberselect">
@foreach (var member in ViewBag.Member)
{
<option value="@member.Id">@($"{member.MemberSurname} {member.MemberName} {member.MemberPatronymic}")</option>
}
</select>
</div>
</div>
<br>
<div class="u-container-layout u-container-layout-2"> <div class="u-container-layout u-container-layout-2">
<input type="submit" value="Сохранить" class="btn btn-outline-dark text-center d-flex justify-content-md-center" /> <input type="submit" value="Сохранить" class="btn btn-outline-dark text-center d-flex justify-content-md-center" />
</div> </div>

View File

@ -36,28 +36,16 @@
name="mealPlanPrice" name="mealPlanPrice"
class="form-control" /> class="form-control" />
</div> </div>
<div class="u-table u-table-responsive u-table-1"> <div class="row">
<label class="u-label u-text-custom-color-1 u-label-1">Участники плана питания</label> <div class="col-4">Участники:</div>
<table class="table"> <div class="col-8">
<thead class="thead-dark"> <select name="memberselect" class="form-control" multiple size="6" id="memberselect">
<tr style="height: 44px"> @foreach (var member in ViewBag.Member)
<th class="u-border-1 u-border-grey-50 u-table-cell"> {
Фамилия <option value="@member.Id">@($"{member.MemberSurname} {member.MemberName} {member.MemberPatronymic}")</option>
</th> }
<th class="u-border-1 u-border-grey-50 u-table-cell"> </select>
Имя </div>
</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>
<tbody class="u-table-body" id="table-elements">
</tbody>
</table>
</div> </div>
<div class="u-align-right u-form-group u-form-submit u-label-top"> <div class="u-align-right u-form-group u-form-submit u-label-top">
<div class="col-8"></div> <div class="col-8"></div>