Участники
This commit is contained in:
parent
a7ea872d30
commit
17b9a01260
@ -10,11 +10,12 @@ namespace HotelDataBaseImplement
|
||||
{
|
||||
if (optionsBuilder.IsConfigured == false)
|
||||
{
|
||||
optionsBuilder.UseSqlServer(@"Data Source=LAPTOP-M2G96S06\SQLEXPRESS;Initial Catalog=HotelDataBase;Integrated Security=True;MultipleActiveResultSets=True;;TrustServerCertificate=True");
|
||||
optionsBuilder.UseSqlServer(@"Data Source=DESKTOP-7DB3VEN\SQLEXPRESS;Initial Catalog=HotelDataBase;Integrated Security=True;MultipleActiveResultSets=True;;TrustServerCertificate=True");
|
||||
}
|
||||
base.OnConfiguring(optionsBuilder);
|
||||
}
|
||||
|
||||
// DESKTOP-7DB3VEN
|
||||
// LAPTOP-M2G96S06
|
||||
public virtual DbSet<Conference> Conferences { set; get; }
|
||||
public virtual DbSet<MealPlan> MealPlans { set; get; }
|
||||
public virtual DbSet<Member> Members { set; get; }
|
||||
|
@ -29,7 +29,6 @@ namespace HotelHeadwaiterApp.Controllers
|
||||
return View();
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public IActionResult Register()
|
||||
{
|
||||
return View();
|
||||
@ -57,7 +56,6 @@ namespace HotelHeadwaiterApp.Controllers
|
||||
return;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public IActionResult Enter()
|
||||
{
|
||||
return View();
|
||||
@ -78,7 +76,6 @@ namespace HotelHeadwaiterApp.Controllers
|
||||
Response.Redirect("Index");
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public IActionResult Privacy()
|
||||
{
|
||||
if (APIClient.Headwaiter == null)
|
||||
|
@ -1,4 +1,5 @@
|
||||
using HotelContracts.BindingModels;
|
||||
using DocumentFormat.OpenXml.Wordprocessing;
|
||||
using HotelContracts.BindingModels;
|
||||
using HotelContracts.ViewModels;
|
||||
using HotelOrganiserApp.Models;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
@ -56,6 +57,7 @@ namespace HotelOrganiserApp.Controllers
|
||||
return View();
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public void Enter(string login, string password)
|
||||
{
|
||||
if (string.IsNullOrEmpty(login) || string.IsNullOrEmpty(password))
|
||||
@ -70,34 +72,177 @@ namespace HotelOrganiserApp.Controllers
|
||||
Response.Redirect("Index");
|
||||
}
|
||||
|
||||
public IActionResult Report()
|
||||
public IActionResult Privacy()
|
||||
{
|
||||
if (APIClient.Organiser == null)
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
return View(APIClient.Organiser);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public void Privacy(string login, string email, string password, string surname, string name, string patronymic, string telephone)
|
||||
{
|
||||
if (APIClient.Organiser == null)
|
||||
{
|
||||
throw new Exception("Вы как сюда попали? Сюда вход только авторизованным");
|
||||
}
|
||||
if (string.IsNullOrEmpty(login) || string.IsNullOrEmpty(password) || string.IsNullOrEmpty(surname) || string.IsNullOrEmpty(name) || string.IsNullOrEmpty(patronymic))
|
||||
{
|
||||
throw new Exception("Введите логин, пароль, фамилию, имя и отчество");
|
||||
}
|
||||
APIClient.PostRequest("api/organiser/updatedata", new OrganiserBindingModel
|
||||
{
|
||||
Id = APIClient.Organiser.Id,
|
||||
OrganiserSurname = surname,
|
||||
OrganiserName = name,
|
||||
OrganiserPatronymic = patronymic,
|
||||
OrganiserLogin = login,
|
||||
OrganiserPassword = password,
|
||||
OrganiserEmail = email,
|
||||
OrganiserPhoneNumber = telephone
|
||||
});
|
||||
|
||||
APIClient.Organiser.OrganiserSurname = surname;
|
||||
APIClient.Organiser.OrganiserName = name;
|
||||
APIClient.Organiser.OrganiserPatronymic = patronymic;
|
||||
APIClient.Organiser.OrganiserLogin = login;
|
||||
APIClient.Organiser.OrganiserPassword = password;
|
||||
APIClient.Organiser.OrganiserEmail = email;
|
||||
APIClient.Organiser.OrganiserPhoneNumber = telephone;
|
||||
Response.Redirect("Index");
|
||||
}
|
||||
|
||||
public IActionResult ListMembers()
|
||||
{
|
||||
if (APIClient.Organiser == null)
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
return View(APIClient.GetRequest<List<MemberViewModel>>($"api/member/getmemberlist?organiserId={APIClient.Organiser.Id}"));
|
||||
}
|
||||
|
||||
public IActionResult CreateMember()
|
||||
{
|
||||
if (APIClient.Organiser == null)
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
return View();
|
||||
}
|
||||
|
||||
public IActionResult BindingRoomAndMealPlan()
|
||||
[HttpPost]
|
||||
public void CreateMember(string memberSurname, string memberName, string memberPatronymic, string memberPhoneNumber)
|
||||
{
|
||||
if (APIClient.Organiser == null)
|
||||
{
|
||||
throw new Exception("Необходима авторизация");
|
||||
}
|
||||
if (string.IsNullOrEmpty(memberSurname) || string.IsNullOrEmpty(memberName) || string.IsNullOrEmpty(memberPatronymic) || string.IsNullOrEmpty(memberPhoneNumber))
|
||||
{
|
||||
throw new Exception("Введите фамилию, имя, отчество и номер телефона");
|
||||
}
|
||||
APIClient.PostRequest("api/member/createmember", new MemberBindingModel
|
||||
{
|
||||
MemberSurname = memberSurname,
|
||||
MemberName = memberName,
|
||||
MemberPatronymic = memberPatronymic,
|
||||
MemberPhoneNumber = memberPhoneNumber,
|
||||
OrganiserId = APIClient.Organiser.Id,
|
||||
});
|
||||
Response.Redirect("ListMembers");
|
||||
}
|
||||
|
||||
public IActionResult UpdateMember()
|
||||
{
|
||||
if (APIClient.Organiser == null)
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
ViewBag.Members = APIClient.GetRequest<List<MemberViewModel>>($"api/member/getmemberlist?organiserId={APIClient.Organiser.Id}");
|
||||
return View();
|
||||
}
|
||||
|
||||
public IActionResult FormationLunch()
|
||||
[HttpPost]
|
||||
public void UpdateMember(int member, string memberSurname, string memberName, string memberPatronymic, string memberPhoneNumber)
|
||||
{
|
||||
if (APIClient.Organiser == null)
|
||||
{
|
||||
throw new Exception("Необходима авторизация");
|
||||
}
|
||||
if (string.IsNullOrEmpty(memberSurname))
|
||||
{
|
||||
throw new Exception("Фамилия не может быть пустая");
|
||||
}
|
||||
if (string.IsNullOrEmpty(memberName))
|
||||
{
|
||||
throw new Exception("Имя не может быть пустым");
|
||||
}
|
||||
if (string.IsNullOrEmpty(memberPatronymic))
|
||||
{
|
||||
throw new Exception("Отчество не может быть пустым");
|
||||
}
|
||||
if (string.IsNullOrEmpty(memberPhoneNumber))
|
||||
{
|
||||
throw new Exception("Номер телефона не может быть пустым");
|
||||
}
|
||||
|
||||
APIClient.PostRequest("api/member/updatemember", new MemberBindingModel
|
||||
{
|
||||
Id = member,
|
||||
MemberSurname = memberSurname,
|
||||
MemberName = memberName,
|
||||
MemberPatronymic = memberPatronymic,
|
||||
MemberPhoneNumber = memberPhoneNumber,
|
||||
OrganiserId = APIClient.Organiser.Id,
|
||||
});
|
||||
|
||||
Response.Redirect("ListMembers");
|
||||
}
|
||||
|
||||
public IActionResult DeleteMember()
|
||||
{
|
||||
if (APIClient.Organiser == null)
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
ViewBag.Members = APIClient.GetRequest<List<MemberViewModel>>($"api/member/getmemberlist?organiserId={APIClient.Organiser.Id}");
|
||||
return View();
|
||||
}
|
||||
|
||||
public IActionResult ShapingLunchIntoRooms()
|
||||
[HttpPost]
|
||||
public void DeleteMember(int member)
|
||||
{
|
||||
return View();
|
||||
if (APIClient.Organiser == null)
|
||||
{
|
||||
throw new Exception("Необходима авторизация");
|
||||
}
|
||||
APIClient.PostRequest("api/member/deletemember", new MemberBindingModel
|
||||
{
|
||||
Id = member
|
||||
});
|
||||
Response.Redirect("ListMembers");
|
||||
}
|
||||
|
||||
public IActionResult FormationOfLunchInConferenceBookings()
|
||||
[HttpGet]
|
||||
public MemberViewModel? GetMember(int memberId)
|
||||
{
|
||||
return View();
|
||||
|
||||
if (APIClient.Organiser == null)
|
||||
{
|
||||
throw new Exception("Необходима авторизация");
|
||||
}
|
||||
public IActionResult ListOfMealPlans()
|
||||
var result = APIClient.GetRequest<MemberViewModel>($"api/member/getmember?memberid={memberId}");
|
||||
if (result == null)
|
||||
{
|
||||
return View();
|
||||
return default;
|
||||
}
|
||||
var memberSurname = result.MemberSurname;
|
||||
var memberName = result.MemberName;
|
||||
var memberPatronymic = result.MemberPatronymic;
|
||||
var memberPhoneNumber = result.MemberPhoneNumber;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
|
||||
|
47
Hotel/HotelOrganiserApp/Views/Home/CreateMember.cshtml
Normal file
47
Hotel/HotelOrganiserApp/Views/Home/CreateMember.cshtml
Normal file
@ -0,0 +1,47 @@
|
||||
@{
|
||||
ViewData["Title"] = "CreateMember";
|
||||
}
|
||||
|
||||
<form method="post">
|
||||
<div class="text-center">
|
||||
<h2 class="display-4">Добавление участника</h2>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="u-label u-text-custom-color-1 u-label-2">Фамилия участника</label>
|
||||
</div>
|
||||
<input type="text"
|
||||
placeholder="Введите фамилию участника"
|
||||
name="memberSurname"
|
||||
class="form-control" />
|
||||
<br>
|
||||
<div class="form-group">
|
||||
<label class="u-label u-text-custom-color-1 u-label-2">Имя участника</label>
|
||||
</div>
|
||||
<input type="text"
|
||||
placeholder="Введите имя участника"
|
||||
name="memberName"
|
||||
class="form-control"
|
||||
step="1" />
|
||||
<br>
|
||||
<div class="form-group">
|
||||
<label class="u-label u-text-custom-color-1 u-label-2">Отчество участника</label>
|
||||
</div>
|
||||
<input type="text"
|
||||
placeholder="Введите отчество участника"
|
||||
name="memberPatronymic"
|
||||
class="form-control"
|
||||
step="1" />
|
||||
<br>
|
||||
<div class="form-group">
|
||||
<label class="u-label u-text-custom-color-1 u-label-2">Номер телефона участника</label>
|
||||
</div>
|
||||
<input type="text"
|
||||
placeholder="Введите номер телефона участника"
|
||||
name="memberPhoneNumber"
|
||||
class="form-control"
|
||||
step="1" />
|
||||
<br>
|
||||
<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" />
|
||||
</div>
|
||||
</form>
|
22
Hotel/HotelOrganiserApp/Views/Home/DeleteMember.cshtml
Normal file
22
Hotel/HotelOrganiserApp/Views/Home/DeleteMember.cshtml
Normal file
@ -0,0 +1,22 @@
|
||||
@{
|
||||
ViewData["Title"] = "DeleteMember";
|
||||
}
|
||||
|
||||
<form method="post">
|
||||
<div class="text-center">
|
||||
<h2 class="display-4">Удаление участника</h2>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="u-label u-text-custom-color-1 u-label-1">Участник: </label>
|
||||
<select id="member" name="member" class="form-control">
|
||||
@foreach (var member in ViewBag.Members)
|
||||
{
|
||||
<option value="@member.Id">@($"{member.MemberSurname} {member.MemberName} {member.MemberPatronymic}")</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
<br>
|
||||
<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" />
|
||||
</div>
|
||||
</form>
|
79
Hotel/HotelOrganiserApp/Views/Home/ListMembers.cshtml
Normal file
79
Hotel/HotelOrganiserApp/Views/Home/ListMembers.cshtml
Normal file
@ -0,0 +1,79 @@
|
||||
@using HotelContracts.ViewModels
|
||||
|
||||
@model List<MemberViewModel>
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "ListMembers";
|
||||
}
|
||||
|
||||
<div class="text-center">
|
||||
<h2 class="display-4">Список участников</h2>
|
||||
</div>
|
||||
|
||||
<section class="u-clearfix u-section-1" id="sec-e38b">
|
||||
<div class="u-clearfix u-sheet u-sheet-1">
|
||||
<div class="u-container-style u-layout-cell u-size-48 u-layout-cell-1">
|
||||
<div class="u-container-layout u-container-layout-1">
|
||||
<div class="btn-group" role="group" aria-label="Basic example">
|
||||
<a asp-area="" asp-controller="Home" asp-action="CreateMember"
|
||||
class="btn btn-outline-dark mr-2">Добавить</a>
|
||||
<a asp-area="" asp-controller="Home" asp-action="UpdateMember"
|
||||
class="btn btn-outline-dark mr-2">Изменить</a>
|
||||
<a asp-area="" asp-controller="Home" asp-action="DeleteMember"
|
||||
class="btn btn-outline-dark">Удалить</a>
|
||||
</div>
|
||||
<div class="u-table u-table-responsive u-table-1">
|
||||
<table class="table">
|
||||
<thead class="thead-dark">
|
||||
<tr style="height: 31px">
|
||||
<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">
|
||||
Имя участника
|
||||
</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">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<tr style="height: 75px">
|
||||
<td class="u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell">
|
||||
@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.MemberSurname)
|
||||
</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.MemberName)
|
||||
</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.MemberPatronymic)
|
||||
</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.MemberPhoneNumber)
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<style>
|
||||
.btn-group > .btn {
|
||||
margin-right: 10px;
|
||||
}
|
||||
</style>
|
@ -34,7 +34,7 @@
|
||||
<label class="u-label u-text-custom-color-1 u-label-3">Фамилия</label>
|
||||
<input type="text"
|
||||
placeholder="Введите фамилию"
|
||||
name="fio"
|
||||
name="surname"
|
||||
value="@Model.OrganiserSurname"
|
||||
class="form-control" />
|
||||
</div>
|
||||
@ -44,7 +44,7 @@
|
||||
<label class="u-label u-text-custom-color-1 u-label-3">Имя</label>
|
||||
<input type="text"
|
||||
placeholder="Введите имя"
|
||||
name="fio"
|
||||
name="name"
|
||||
value="@Model.OrganiserName"
|
||||
class="form-control" />
|
||||
</div>
|
||||
@ -54,7 +54,7 @@
|
||||
<label class="u-label u-text-custom-color-1 u-label-3">Отчество</label>
|
||||
<input type="text"
|
||||
placeholder="Введите отчество"
|
||||
name="fio"
|
||||
name="patronymic"
|
||||
value="@Model.OrganiserPatronymic"
|
||||
class="form-control" />
|
||||
</div>
|
||||
|
86
Hotel/HotelOrganiserApp/Views/Home/UpdateMember.cshtml
Normal file
86
Hotel/HotelOrganiserApp/Views/Home/UpdateMember.cshtml
Normal file
@ -0,0 +1,86 @@
|
||||
@using HotelContracts.ViewModels;
|
||||
@using HotelDataModels.Models;
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "UpdateMember";
|
||||
}
|
||||
|
||||
<form method="post">
|
||||
<div class="text-center">
|
||||
<h2 class="display-4">Изменение участника</h2>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="u-label u-text-custom-color-1 u-label-1">Участник: </label>
|
||||
<div class="u-input u-input-rectangle">
|
||||
<select id="member" name="member" class="form-control">
|
||||
@foreach (var member in ViewBag.Members)
|
||||
{
|
||||
<option value="@member.Id">@($"{member.MemberSurname} {member.MemberName} {member.MemberPatronymic}")</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="u-label u-text-custom-color-1 u-label-1">Фамилия участника</label>
|
||||
<input type="text"
|
||||
id="memberSurname"
|
||||
placeholder="Введите фамилию участника"
|
||||
name="memberSurname"
|
||||
class="form-control" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="u-label u-text-custom-color-1 u-label-1">Имя участника</label>
|
||||
<input type="text"
|
||||
id="memberName"
|
||||
placeholder="Введите имя участника"
|
||||
name="memberName"
|
||||
class="form-control" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="u-label u-text-custom-color-1 u-label-1">Отчество участника</label>
|
||||
<input type="text"
|
||||
id="memberPatronymic"
|
||||
placeholder="Введите отчество участника"
|
||||
name="memberPatronymic"
|
||||
class="form-control" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="u-label u-text-custom-color-1 u-label-1">Номер телефона участника</label>
|
||||
<input type="text"
|
||||
id="memberPhoneNumber"
|
||||
placeholder="Введите номер телефона участника"
|
||||
name="memberPhoneNumber"
|
||||
class="form-control" />
|
||||
</div>
|
||||
<div class="u-align-right u-form-group u-form-submit u-label-top">
|
||||
<div class="col-8"></div>
|
||||
<div class="col-4"><input type="submit" value="Сохранить" class="u-active-custom-color-6 u-border-none u-btn u-btn-submit u-button-style u-custom-color-1 u-hover-custom-color-2 u-btn-1" /></div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
@section Scripts
|
||||
{
|
||||
<script>
|
||||
function check() {
|
||||
var member = $('#member').val();
|
||||
if (member) {
|
||||
$.ajax({
|
||||
method: "GET",
|
||||
url: "/Home/GetMember",
|
||||
data: { memberId: member },
|
||||
success: function (result) {
|
||||
$('#memberSurname').val(result.memberSurname);
|
||||
$('#memberName').val(result.memberName);
|
||||
$('#memberPatronymic').val(result.memberPatronymic);
|
||||
$('#memberPhoneNumber').val(result.memberPhoneNumber);
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
check();
|
||||
$('#member').on('change', function () {
|
||||
check();
|
||||
});
|
||||
</script>
|
||||
}
|
@ -6,5 +6,5 @@
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*",
|
||||
"IPAddress": "https://localhost:7093"
|
||||
"IPAddress": "https://localhost:7093/"
|
||||
}
|
||||
|
@ -6,6 +6,8 @@ using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace HotelRestApi.Controllers
|
||||
{
|
||||
[Route("api/[controller]/[action]")]
|
||||
[ApiController]
|
||||
public class MemberController : Controller
|
||||
{
|
||||
private readonly ILogger _logger;
|
||||
|
Loading…
x
Reference in New Issue
Block a user