Files
parr_api/PARR.DAL/Repositories/OrderStatusRepository.cs

56 lines
2.4 KiB
C#
Raw Permalink Normal View History

using Microsoft.Extensions.Logging;
using PARR.Core.Repositories.Interfaces;
using PARR.DAL.Context;
using PARR.Domain.Entities;
using PARR.Domain.Enums;
namespace PARR.DAL.Repositories
{
internal class OrderStatusRepository : IOrderStatusRepository
{
private readonly DataContext dataContext;
private readonly ILogger<OrderStatusRepository> logger;
public OrderStatusRepository(DataContext dataContext, ILogger<OrderStatusRepository> 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;
}
}
}
}