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 logger; public OrderStatusService(DataContext dataContext, ILogger logger) { this.dataContext = dataContext; this.logger = logger; } public IQueryable 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; } } } }