Upload files to 'ShipyardRestApi/Controllers'

This commit is contained in:
Ivan_Starostin 2024-06-02 17:49:15 +04:00
parent 9c37f45f87
commit 312bf06052
2 changed files with 147 additions and 0 deletions

View File

@ -0,0 +1,65 @@
using Microsoft.AspNetCore.Mvc;
using ShipyardContracts.BindingModels;
using ShipyardContracts.BusinessLogicContracts;
using ShipyardContracts.SearchModels;
using ShipyardContracts.ViewModels;
namespace ShipyardRestApi.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
public class ClientController : Controller
{
private readonly ILogger _logger;
private readonly IClientLogic _logic;
public ClientController(IClientLogic logic, ILogger<ClientController>
logger)
{
_logger = logger;
_logic = logic;
}
[HttpGet]
public ClientViewModel? Login(string login, string password)
{
try
{
return _logic.ReadElement(new ClientSearchModel
{
Email = login,
Password = password
});
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка входа в систему");
throw;
}
}
[HttpPost]
public void Register(ClientBindingModel model)
{
try
{
_logic.Create(model);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка регистрации");
throw;
}
}
[HttpPost]
public void UpdateData(ClientBindingModel model)
{
try
{
_logic.Update(model);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка обновления данных");
throw;
}
}
}
}

View File

@ -0,0 +1,82 @@
using Microsoft.AspNetCore.Mvc;
using ShipyardContracts.BindingModels;
using ShipyardContracts.BusinessLogicsContracts;
using ShipyardContracts.SearchModels;
using ShipyardContracts.ViewModels;
namespace ShipyardRestApi.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
public class MainController : Controller
{
private readonly ILogger _logger;
private readonly IOrderLogic _order;
private readonly IShipLogic _ship;
public MainController(ILogger<MainController> logger, IOrderLogic order, IShipLogic product)
{
_logger = logger;
_order = order;
_ship = product;
}
[HttpGet]
public List<ShipViewModel>? GetShipList()
{
try
{
return _ship.ReadList(null);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка получения списка кораблей");
throw;
}
}
[HttpGet]
public ShipViewModel? GetShip(int productId)
{
try
{
return _ship.ReadElement(new ShipSearchModel
{
Id = productId
});
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка получения корабля по id={Id}", productId);
throw;
}
}
[HttpGet]
public List<OrderViewModel>? 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;
}
}
}
}