feat(esppOrderLoader): доделал логику синхронизации
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using PARR.DAL.Models;
|
||||
using PARR.DAL.Services.Interfaces;
|
||||
using PARR.EsppApi.Models;
|
||||
|
||||
@@ -10,25 +11,24 @@ namespace PARR.EsppOrderLoader.Services
|
||||
private readonly ILogger<OrderItemService> logger;
|
||||
private readonly IOrderService orderService;
|
||||
private readonly ITemplateService templateService;
|
||||
private readonly IOrderStatusService orderStatusService;
|
||||
|
||||
public OrderItemService(
|
||||
ILogger<OrderItemService> logger,
|
||||
IOrderService orderService,
|
||||
ITemplateService templateService
|
||||
ITemplateService templateService,
|
||||
IOrderStatusService orderStatusService
|
||||
)
|
||||
{
|
||||
this.orderService = orderService;
|
||||
this.templateService = templateService;
|
||||
this.orderStatusService = orderStatusService;
|
||||
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)
|
||||
{
|
||||
@@ -36,15 +36,25 @@ namespace PARR.EsppOrderLoader.Services
|
||||
return;
|
||||
}
|
||||
|
||||
var template = await templateService.Get().FirstOrDefaultAsync(t => t.Name.ToLower() == esppOrder.ShortName.ToLower());
|
||||
var template = await templateService.Get().FirstOrDefaultAsync(t => t.Name.ToLower() == esppOrder.TemplateName.ToLower());
|
||||
if (template == null)
|
||||
logger.LogWarning($"Не найден шаблон для наряда {esppOrder.Number}, краткое описание наряда: {esppOrder.ShortName}. {esppOrder.WorkGroup}");
|
||||
|
||||
var newOrder = new Order
|
||||
{
|
||||
logger.LogInformation($"Не найден шаблон для наряда {esppOrder.Number}, краткое описание наряда: {esppOrder.ShortName}. Пропускаю.");
|
||||
return;
|
||||
}
|
||||
|
||||
//todo: добавляю в БД!
|
||||
Id = Guid.NewGuid(),
|
||||
Number = esppOrder.Number,
|
||||
WorkGroup = esppOrder.WorkGroup,
|
||||
ShortName = esppOrder.ShortName,
|
||||
TemplateId = template?.Id,
|
||||
OrderStatusCode = (int)orderStatusService.GetOrderStatusByName(esppOrder.Status)
|
||||
};
|
||||
|
||||
if (!await orderService.CreateAsync(newOrder) || !await orderService.CommitAsync())
|
||||
logger.LogError($"Ошибка при добавлении новой записи наряда в БД. {esppOrder.Number}, {esppOrder.WorkGroup}, {esppOrder.ShortName}");
|
||||
else
|
||||
logger.LogInformation($"Добавлен наряд в БД: {esppOrder.Number}, {esppOrder.ShortName}");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user