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 logger; public OrderStatusRepository(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; } } } }