using LawFirmContracts.BindingModels; using LawFirmContracts.SearchModels; using LawFirmContracts.ViewModels; using LawFirmShopApp.Models; using Microsoft.AspNetCore.Mvc; using System.Diagnostics; using System.Xml.Linq; namespace LawFirmShopApp.Controllers { public class HomeController : Controller { private readonly ILogger _logger; public HomeController(ILogger logger) { _logger = logger; } public IActionResult Index() { if (!APIClient.isAuth) { return Redirect("~/Home/Enter"); } return View(APIClient.GetRequest>($"api/shop/getshoplist")); } public IActionResult Privacy() { if (!APIClient.isAuth) { return Redirect("~/Home/Enter"); } return View(); } [HttpGet] public IActionResult Enter() { return View(); } [HttpPost] public void Enter(string password) { if (string.IsNullOrEmpty(password)) { throw new Exception("Введите пароль"); } if (!password.Equals(APIClient.ConfigPassword)) { throw new Exception("Неверный пароль"); } APIClient.isAuth = true; Response.Redirect("Index"); } [HttpGet] public IActionResult Create() { return View(); } [HttpPost] public void Create(string name, string address, DateTime openingDate, int count) { if (!APIClient.isAuth) { throw new Exception("Вы как суда попали? Суда вход только авторизованным"); } if (count <= 0) { throw new Exception("Макс. кол-во док-ов должно быть больше чем 0"); } APIClient.PostRequest("api/shop/createshop", new ShopBindingModel { Name = name, Adress = address, OpeningDate = openingDate, MaxCountDocuments = count, }); Response.Redirect("Index"); } [HttpGet] public IActionResult Delete() { ViewBag.Shops = APIClient.GetRequest>("api/shop/getshoplist"); return View(); } [HttpPost] public void Delete(int shop) { if (!APIClient.isAuth) { throw new Exception("Вы как суда попали? Суда вход только авторизованным"); } APIClient.PostRequest($"api/shop/deleteshop", new ShopBindingModel { Id = shop }); Response.Redirect("Index"); } [HttpGet] public IActionResult Update() { ViewBag.Shops = APIClient.GetRequest>("api/shop/getshoplist"); return View(); } [HttpPost] public void Update(int shop, string name, string address, DateTime openingDate, int count) { if (!APIClient.isAuth) { throw new Exception("Вы как суда попали? Суда вход только авторизованным"); } APIClient.PostRequest($"api/shop/updateshop", new ShopBindingModel { Id = shop, Name = name, Adress = address, OpeningDate = openingDate, MaxCountDocuments = count, } ); Response.Redirect("Index"); } [HttpGet] public ShopViewModel? GetShop(int shopId) { return APIClient.GetRequest($"api/shop/getshop?shopId={shopId}"); } public IActionResult Supply() { ViewBag.Shops = APIClient.GetRequest>("api/shop/getshoplist"); ViewBag.Documents = APIClient.GetRequest>("api/main/getdocumentlist"); return View(); } [HttpPost] public void Supply(int shopId, int documentId, int count) { if (!APIClient.isAuth) { throw new Exception("Вы как суда попали? Суда вход только авторизованным"); } APIClient.PostRequest($"api/shop/supplydocumentstoshop", (new ShopSearchModel { Id = shopId }, new DocumentBindingModel { Id = documentId }, count)); Response.Redirect("Index"); } [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] public IActionResult Error() { return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); } } }