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;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|