2023-10-24 10:38:21 +10:00
|
|
|
|
using Microsoft.Extensions.Logging;
|
2026-04-30 10:35:31 +10:00
|
|
|
|
using PARR.Core.Repositories.Interfaces;
|
2023-10-24 10:38:21 +10:00
|
|
|
|
using PARR.DAL.Context;
|
2026-04-30 10:35:31 +10:00
|
|
|
|
using PARR.Domain.Entities;
|
2026-04-14 12:01:49 +10:00
|
|
|
|
using PARR.Domain.Enums;
|
2023-10-23 16:17:42 +10:00
|
|
|
|
|
2026-04-30 10:35:31 +10:00
|
|
|
|
namespace PARR.DAL.Repositories
|
2023-10-23 16:17:42 +10:00
|
|
|
|
{
|
2026-04-30 10:35:31 +10:00
|
|
|
|
internal class OrderStatusRepository : IOrderStatusRepository
|
2023-10-23 16:17:42 +10:00
|
|
|
|
{
|
|
|
|
|
|
private readonly DataContext dataContext;
|
2026-04-30 10:35:31 +10:00
|
|
|
|
private readonly ILogger<OrderStatusRepository> logger;
|
2023-10-23 16:17:42 +10:00
|
|
|
|
|
2026-04-30 10:35:31 +10:00
|
|
|
|
public OrderStatusRepository(DataContext dataContext, ILogger<OrderStatusRepository> logger)
|
2023-10-23 16:17:42 +10:00
|
|
|
|
{
|
|
|
|
|
|
this.dataContext = dataContext;
|
2023-10-24 10:38:21 +10:00
|
|
|
|
this.logger = logger;
|
2023-10-23 16:17:42 +10:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public IQueryable<OrderStatus> Get()
|
|
|
|
|
|
{
|
2026-02-09 12:00:46 +10:00
|
|
|
|
logger.LogDebug("Получаю набор статусов нарядов");
|
2023-10-23 16:17:42 +10:00
|
|
|
|
return dataContext.OrderStatuses;
|
|
|
|
|
|
}
|
2023-10-24 10:38:21 +10:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public OrderStatusEnum GetOrderStatusByName(string statusName)
|
|
|
|
|
|
{
|
2026-02-09 12:00:46 +10:00
|
|
|
|
logger.LogDebug("Поиск статуса наряда по имени: {StatusName}", statusName);
|
|
|
|
|
|
|
2023-10-25 14:01:41 +10:00
|
|
|
|
switch (statusName.Trim())
|
2023-10-24 10:38:21 +10:00
|
|
|
|
{
|
|
|
|
|
|
case "1-Направлен в группу":
|
2026-02-09 12:00:46 +10:00
|
|
|
|
logger.LogDebug("Найден статус: {StatusEnum}", OrderStatusEnum.New);
|
2023-10-24 10:38:21 +10:00
|
|
|
|
return OrderStatusEnum.New;
|
|
|
|
|
|
case "2-В работе":
|
2026-02-09 12:00:46 +10:00
|
|
|
|
logger.LogDebug("Найден статус: {StatusEnum}", OrderStatusEnum.InWork);
|
2023-10-24 10:38:21 +10:00
|
|
|
|
return OrderStatusEnum.InWork;
|
|
|
|
|
|
case "3-Приостановлен":
|
2026-02-09 12:00:46 +10:00
|
|
|
|
logger.LogDebug("Найден статус: {StatusEnum}", OrderStatusEnum.Stop);
|
2023-10-24 10:38:21 +10:00
|
|
|
|
return OrderStatusEnum.Stop;
|
|
|
|
|
|
case "4-Выполнен":
|
2026-02-09 12:00:46 +10:00
|
|
|
|
logger.LogDebug("Найден статус: {StatusEnum}", OrderStatusEnum.Complete);
|
2023-10-24 10:38:21 +10:00
|
|
|
|
return OrderStatusEnum.Complete;
|
|
|
|
|
|
case "5-Закрыт":
|
2026-02-09 12:00:46 +10:00
|
|
|
|
logger.LogDebug("Найден статус: {StatusEnum}", OrderStatusEnum.Closed);
|
2023-10-24 10:38:21 +10:00
|
|
|
|
return OrderStatusEnum.Closed;
|
|
|
|
|
|
default:
|
2026-02-09 12:00:46 +10:00
|
|
|
|
logger.LogWarning(
|
|
|
|
|
|
"Не смог распознать статус наряда, вернул значение по умолчанию: {DefaultStatus}, входящее значение: {InputStatus}",
|
|
|
|
|
|
OrderStatusEnum.New, statusName);
|
2023-10-24 10:38:21 +10:00
|
|
|
|
return OrderStatusEnum.New;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-10-23 16:17:42 +10:00
|
|
|
|
}
|
2026-02-09 12:00:46 +10:00
|
|
|
|
}
|