using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; using PARR.DAL.Services.Interfaces; using PARR.EsppApi.Models; namespace PARR.EsppOrderLoader.Services { internal class OrderItemService : IOrderItemService { private readonly ILogger logger; private readonly IOrderService orderService; private readonly ITemplateService templateService; public OrderItemService( ILogger logger, IOrderService orderService, ITemplateService templateService ) { this.orderService = orderService; this.templateService = templateService; this.logger = logger; } public async Task WriteOrderAsync(EsppOrder esppOrder) { // В цикле проверяю каждый наряд, есть ли он в БД + по имени ищу есть ли такой шаблон // Если наряда такого нет в БД и есть шаблон, добавляю в БД // если в бд не добавляю, пишу в лог, что нет такого шаблона, в бд не добавляю var existOrder = await orderService.Get().FirstOrDefaultAsync(t => t.Number.ToLower() == esppOrder.Number.ToLower()); if (existOrder != null) { logger.LogInformation($"Наряд {esppOrder.Number} уже есть в БД. Пропускаю."); return; } var template = await templateService.Get().FirstOrDefaultAsync(t => t.Name.ToLower() == esppOrder.ShortName.ToLower()); if (template == null) { logger.LogInformation($"Не найден шаблон для наряда {esppOrder.Number}, краткое описание наряда: {esppOrder.ShortName}. Пропускаю."); return; } //todo: добавляю в БД! } } }