Computer_Hardware_Store/HardwareShop/HardwareShopRestApi/Controllers/BuildController.cs

116 lines
3.1 KiB
C#
Raw Normal View History

using HardwareShopBusinessLogic.BusinessLogics.Storekeeper;
using HardwareShopContracts.BindingModels;
2023-05-15 19:26:52 +04:00
using HardwareShopContracts.BusinessLogicsContracts;
using HardwareShopContracts.SearchModels;
using HardwareShopContracts.ViewModels;
using HardwareShopDatabaseImplement.Models.Worker;
using HardwareShopDataModels.Models;
2023-05-15 19:26:52 +04:00
using Microsoft.AspNetCore.Mvc;
using System.ComponentModel;
2023-05-15 19:26:52 +04:00
namespace HardwareShopRestApi.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
public class BuildController : Controller
2023-05-15 19:26:52 +04:00
{
private readonly ILogger _logger;
private readonly IBuildLogic _buildLogic;
private readonly IComponentLogic _componentLogic;
2023-05-15 19:26:52 +04:00
public BuildController(IBuildLogic buildLogic, IComponentLogic componentLogic, ILogger<UserController> logger)
2023-05-15 19:26:52 +04:00
{
_logger = logger;
_buildLogic = buildLogic;
_componentLogic = componentLogic;
2023-05-15 19:26:52 +04:00
}
[HttpGet]
public List<BuildViewModel>? GetBuilds(int userId)
2023-05-15 19:26:52 +04:00
{
try
{
return _buildLogic.ReadList(new BuildSearchModel
2023-05-15 19:26:52 +04:00
{
UserId = userId
2023-05-15 19:26:52 +04:00
});
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка получения списка сборок");
throw;
}
}
[HttpGet]
public BuildViewModel? GetBuild(int id)
{
try
{
return _buildLogic.ReadElement(new() { Id = id });
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка сборки");
2023-05-15 19:26:52 +04:00
throw;
}
}
[HttpPost]
public void Create(BuildBindingModel model)
2023-05-15 19:26:52 +04:00
{
try
{
_buildLogic.Create(model);
2023-05-15 19:26:52 +04:00
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка сборки");
2023-05-15 19:26:52 +04:00
throw;
}
}
[HttpPost]
public void Update(BuildBindingModel model)
2023-05-15 19:26:52 +04:00
{
try
{
_buildLogic.Update(model);
2023-05-15 19:26:52 +04:00
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка обновления данных");
throw;
}
}
[HttpPost]
public void DeleteShop(BuildBindingModel model)
{
try
{
_buildLogic.Update(model);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка удаления сборки");
throw;
}
}
[HttpPost]
public void AddDishInShop(ComponentBindingModel model)
{
try
{
_componentLogic.Update(model);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка компонента в сборку");
throw;
}
}
2023-05-15 19:26:52 +04:00
}
}