90 lines
2.3 KiB
C#
90 lines
2.3 KiB
C#
using DinerContracts.BindingModels;
|
||
using DinerContracts.BusinessLogicsContacts;
|
||
using DinerContracts.BusinessLogicsContracts;
|
||
using DinerContracts.SearchModels;
|
||
using DinerContracts.ViewModels;
|
||
using DinerDataModels.Enums;
|
||
using DocumentFormat.OpenXml.Office2010.PowerPoint;
|
||
using Microsoft.AspNetCore.Mvc;
|
||
|
||
namespace DinerRestApi.Controllers {
|
||
|
||
[Route("api/[controller]/[action]")]
|
||
[ApiController]
|
||
|
||
public class ImplementerController : Controller {
|
||
|
||
private readonly ILogger _logger;
|
||
private readonly IOrderLogic _order;
|
||
private readonly IImplementerLogic _logic;
|
||
|
||
public ImplementerController(ILogger<ImplementerController> logger, IOrderLogic order, IImplementerLogic implementerLogic) {
|
||
_logger = logger;
|
||
_order = order;
|
||
_logic = implementerLogic;
|
||
}
|
||
|
||
[HttpGet]
|
||
public ImplementerViewModel? Login(string login, string password) {
|
||
try {
|
||
return _logic.ReadElement(new ImplementerSearchModel {
|
||
ImplementerFIO = login,
|
||
Password = password
|
||
});
|
||
}
|
||
catch (Exception ex) {
|
||
_logger.LogError(ex, "Ошибка авторизации сотрудников");
|
||
throw;
|
||
}
|
||
}
|
||
|
||
[HttpGet]
|
||
public List<OrderViewModel>? GetNewOrderss() {
|
||
try {
|
||
return _order.ReadList(new OrderSearchModel {
|
||
Status = OrderStatus.Принят
|
||
});
|
||
}
|
||
catch (Exception ex) {
|
||
_logger.LogError(ex, "Ошибка получения новых заказов");
|
||
throw;
|
||
}
|
||
}
|
||
|
||
[HttpGet]
|
||
public OrderViewModel? GetImplementerOrder(int implementerID) {
|
||
try {
|
||
return _order.ReadElement(new OrderSearchModel {
|
||
ImplementerID = implementerID
|
||
});
|
||
}
|
||
catch (Exception ex) {
|
||
_logger.LogError(ex, "Ошибка получения текущего заказа исполнителя");
|
||
throw;
|
||
}
|
||
}
|
||
|
||
[HttpPost]
|
||
public void TakeOrderInWork(OrderBindingModel model) {
|
||
try {
|
||
_order.TakeOrderInWork(model);
|
||
}
|
||
catch (Exception ex) {
|
||
_logger.LogError(ex, $"Ошибка перевода заказа с №{model.ID} в работу");
|
||
throw;
|
||
}
|
||
}
|
||
|
||
[HttpPost]
|
||
public void FinishOrder(OrderBindingModel model) {
|
||
try {
|
||
_order.FinishOrder(model);
|
||
}
|
||
catch (Exception ex) {
|
||
_logger.LogError(ex, $"Ошибка отметки о готовности заказа с №{model.ID}");
|
||
throw;
|
||
}
|
||
}
|
||
}
|
||
}
|