51 lines
2.0 KiB
C#
51 lines
2.0 KiB
C#
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<OrderItemService> logger;
|
||
private readonly IOrderService orderService;
|
||
private readonly ITemplateService templateService;
|
||
|
||
public OrderItemService(
|
||
ILogger<OrderItemService> 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: добавляю в БД!
|
||
|
||
}
|
||
}
|
||
}
|