ComputerHardwareStore_YouAr.../ComputerHardwareStore/VendorClient/Controllers/BuildController.cs
2024-05-29 15:26:54 +04:00

97 lines
3.1 KiB
C#

using ComputerHardwareStoreContracts.BindingModels;
using ComputerHardwareStoreContracts.ViewModels;
using Microsoft.AspNetCore.Mvc;
using System.Xml.Linq;
namespace VendorClient.Controllers
{
[Route("Home/[action]")]
public class BuildController : Controller
{
private readonly ILogger _logger;
private const string API_ROUTE = "api/builds";
public BuildController(ILogger<BuildController> logger)
{
_logger = logger;
}
[HttpGet]
public IActionResult AddBuildToPurchase()
{
return View();
}
[HttpGet]
public IActionResult Builds()
{
if (APIClient.Vendor == null)
{
return Redirect("~/Home/Enter");
}
return View(APIClient.GetRequest<List<BuildViewModel>>($"{API_ROUTE}/getbuilds?userId={APIClient.Vendor.Id}"));
}
[HttpGet]
public void BuildCreate(string buildName)
{
if (APIClient.Vendor == null)
{
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
}
if (string.IsNullOrEmpty(buildName))
{
throw new Exception($"Имя сборки не должно быть пустым");
}
APIClient.PostRequest($"{API_ROUTE}/create", new BuildBindingModel
{
Name = buildName,
VendorId = APIClient.Vendor.Id
});
Response.Redirect("~/Home/Builds");
}
[HttpGet]
public void BuildDelete(int id)
{
if (APIClient.Vendor == null)
{
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
}
if (id <= 0)
{
throw new Exception($"Идентификатор сборки не может быть ниже или равен 0");
}
APIClient.PostRequest("api/build/DeleteBuild", new BuildBindingModel
{
Id = id
});
Response.Redirect("~/Home/Builds");
}
[HttpGet]
public void BuildUpdate(string buildName, int buildId)
{
if (APIClient.Vendor == null)
{
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
}
if (string.IsNullOrEmpty(buildName))
{
throw new Exception($"Имя сборки не должно быть пустым");
}
if (buildId <= 0)
{
throw new Exception($"Идентификатор сборки не может быть ниже или равен 0");
}
APIClient.PostRequest($"{API_ROUTE}/update", new BuildBindingModel
{
Id = buildId,
Name = buildName
});
Response.Redirect("~/Home/Builds");
}
}
}