diff --git a/SecuritySystem/SecuritySystemRestApi/Controllers/MainController.cs b/SecuritySystem/SecuritySystemRestApi/Controllers/MainController.cs new file mode 100644 index 0000000..aa89876 --- /dev/null +++ b/SecuritySystem/SecuritySystemRestApi/Controllers/MainController.cs @@ -0,0 +1,81 @@ +using Microsoft.AspNetCore.Mvc; +using SecuritySystemContracts.BindingModels; +using SecuritySystemContracts.BusinessLogicsContracts; +using SecuritySystemContracts.SearchModels; +using SecuritySystemContracts.ViewModels; + +namespace SecuritySystemRestApi.Controllers +{ + [Route("api/[controller]/[action]")] + [ApiController] + public class MainController : Controller + { + private readonly ILogger _logger; + private readonly IOrderLogic _order; + private readonly ISecureLogic _secure; + public MainController(ILogger logger, IOrderLogic order, ISecureLogic secure) + { + _logger = logger; + _order = order; + _secure = secure; + } + [HttpGet] + public List? GetSecureList() + { + try + { + return _secure.ReadList(null); + } + catch (Exception ex) + { + _logger.LogError(ex, "Ошибка получения списка secures"); + throw; + } + } + [HttpGet] + public SecureViewModel? GetSecure(int secureId) + { + try + { + return _secure.ReadElement(new SecureSearchModel + { + Id = secureId + }); + } + catch (Exception ex) + { + _logger.LogError(ex, "Ошибка получения secure по id={Id}", secureId); + throw; + } + } + [HttpGet] + public List? GetOrders(int clientId) + { + try + { + return _order.ReadList(new OrderSearchModel + { + ClientId = clientId + }); + } + catch (Exception ex) + { + _logger.LogError(ex, "Ошибка получения списка заказов клиента id = {Id}", clientId); + throw; + } + } + [HttpPost] + public void CreateOrder(OrderBindingModel model) + { + try + { + _order.CreateOrder(model); + } + catch (Exception ex) + { + _logger.LogError(ex, "Ошибка создания заказа"); + throw; + } + } + } +}