CourseWork_BankYouBankrupt/BankYouBankrupt/BankYouBankruptCashierApp/Controllers/HomeController.cs

180 lines
6.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using BankYouBankruptCashierApp.Models;
using BankYouBankruptContracts.BindingModels;
using BankYouBankruptContracts.ViewModels;
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;
using System.Xml.Linq;
namespace BankYouBankruptCashierApp.Controllers
{
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
//вытаскивает через API клиента Get-запросом список его собственных заказов
public IActionResult Index()
{
if (APICashier.Cashier == null)
{
//return Redirect("~/Home/Enter");
}
//return View(APICashier.GetRequest<List<AccountViewModel>>($"api/main/getaccounts?cashierId={APICashier.Cashier.Id}"));
return View();
}
//изменемение ланных Get-ом
[HttpGet]
public IActionResult Privacy()
{
if (APICashier.Cashier == null)
{
//return Redirect("~/Home/Enter");
}
return View(APICashier.Cashier);
}
//изменение данных Post-ом
[HttpPost]
public void Privacy(string login, string password, string name, string surname, string patronymic, string telephone)
{
if (APICashier.Cashier == null)
{
throw new Exception("Вы как сюда попали? Суда вход только авторизованным");
}
if (string.IsNullOrEmpty(login) || string.IsNullOrEmpty(password) || string.IsNullOrEmpty(name)
|| string.IsNullOrEmpty(surname) || string.IsNullOrEmpty(patronymic) || string.IsNullOrEmpty(telephone))
{
throw new Exception("Введите логин, пароль, ФИО и телефон");
}
APICashier.PostRequest("api/cashier/updatedata", new CashierBindingModel
{
Id = APICashier.Cashier.Id,
Name = name,
Surname = surname,
Patronymic = patronymic,
Telephone = telephone,
Email = login,
Password = password
});
APICashier.Cashier.Name = name;
APICashier.Cashier.Surname = surname;
APICashier.Cashier.Patronymic = patronymic;
APICashier.Cashier.Email = login;
APICashier.Cashier.Password = password;
APICashier.Cashier.Telephone = telephone;
Response.Redirect("Index");
}
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel
{
RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier
});
}
//просто открытие вьюхи
[HttpGet]
public IActionResult Enter()
{
return View();
}
//отсылаем указанные данные на проверку
[HttpPost]
public void Enter(string login, string password)
{
if (string.IsNullOrEmpty(login) || string.IsNullOrEmpty(password))
{
throw new Exception("Введите логин и пароль");
}
APICashier.Cashier = APICashier.GetRequest<CashierViewModel>($"api/cashier/login?login={login}&password={password}");
if (APICashier.Cashier == null)
{
throw new Exception("Неверный логин/пароль");
}
Response.Redirect("Index");
}
//просто открытие вьюхи
[HttpGet]
public IActionResult Register()
{
return View();
}
//Post-запрос по созданию нового пользователя
[HttpPost]
public void Register(string login, string password, string name, string surname, string patronymic, string telephone)
{
if (string.IsNullOrEmpty(login) || string.IsNullOrEmpty(password) || string.IsNullOrEmpty(name)
|| string.IsNullOrEmpty(surname) || string.IsNullOrEmpty(patronymic) || string.IsNullOrEmpty(telephone))
{
throw new Exception("Введите логин, пароль, ФИО и телефон");
}
APICashier.PostRequest("api/client/register", new CashierBindingModel
{
Name = name,
Surname = surname,
Patronymic = patronymic,
Email = login,
Password = password,
Telephone = telephone
});
//переход на вкладку "Enter", чтобы пользователь сразу смог зайти
Response.Redirect("Enter");
return;
}
//открытие счёта. Получаем и передаём список изделий во вьюху?
[HttpGet]
public IActionResult Create()
{
//ViewBag.Accountes = APICashier.GetRequest<List<AccountViewModel>>("api/main/getaccountlist");
return View();
}
//создание заказа Post-запросом
[HttpPost]
public void Create(int account, int count)
{
if (APICashier.Cashier == null)
{
//throw new Exception("Вы как сюда попали? Суда вход только авторизованным");
}
if (count <= 0)
{
throw new Exception("Количество и сумма должны быть больше 0");
}
APICashier.PostRequest("api/main/createaccount", new AccountBindingModel
{
ClientId = APICashier.Cashier.Id
//TODO
});
Response.Redirect("Index");
}
}
}