56 lines
2.4 KiB
C#
56 lines
2.4 KiB
C#
using Microsoft.Extensions.Logging;
|
||
using PARR.Constants;
|
||
using PARR.DAL.Context;
|
||
using PARR.DAL.Models;
|
||
using PARR.DAL.Services.Interfaces;
|
||
|
||
namespace PARR.DAL.Services.Implementations
|
||
{
|
||
internal class OrderStatusService : IOrderStatusService
|
||
{
|
||
private readonly DataContext dataContext;
|
||
private readonly ILogger<OrderStatusService> logger;
|
||
|
||
public OrderStatusService(DataContext dataContext, ILogger<OrderStatusService> logger)
|
||
{
|
||
this.dataContext = dataContext;
|
||
this.logger = logger;
|
||
}
|
||
|
||
public IQueryable<OrderStatus> Get()
|
||
{
|
||
logger.LogDebug("Получаю набор статусов нарядов");
|
||
return dataContext.OrderStatuses;
|
||
}
|
||
|
||
|
||
public OrderStatusEnum GetOrderStatusByName(string statusName)
|
||
{
|
||
logger.LogDebug("Поиск статуса наряда по имени: {StatusName}", statusName);
|
||
|
||
switch (statusName.Trim())
|
||
{
|
||
case "1-Направлен в группу":
|
||
logger.LogDebug("Найден статус: {StatusEnum}", OrderStatusEnum.New);
|
||
return OrderStatusEnum.New;
|
||
case "2-В работе":
|
||
logger.LogDebug("Найден статус: {StatusEnum}", OrderStatusEnum.InWork);
|
||
return OrderStatusEnum.InWork;
|
||
case "3-Приостановлен":
|
||
logger.LogDebug("Найден статус: {StatusEnum}", OrderStatusEnum.Stop);
|
||
return OrderStatusEnum.Stop;
|
||
case "4-Выполнен":
|
||
logger.LogDebug("Найден статус: {StatusEnum}", OrderStatusEnum.Complete);
|
||
return OrderStatusEnum.Complete;
|
||
case "5-Закрыт":
|
||
logger.LogDebug("Найден статус: {StatusEnum}", OrderStatusEnum.Closed);
|
||
return OrderStatusEnum.Closed;
|
||
default:
|
||
logger.LogWarning(
|
||
"Не смог распознать статус наряда, вернул значение по умолчанию: {DefaultStatus}, входящее значение: {InputStatus}",
|
||
OrderStatusEnum.New, statusName);
|
||
return OrderStatusEnum.New;
|
||
}
|
||
}
|
||
}
|
||
} |