Логига синхронизации

This commit is contained in:
Mikhail Kuznetsov
2023-09-14 15:07:19 +10:00
parent 3cab61aea3
commit ead8117353
2 changed files with 38 additions and 20 deletions

View File

@@ -2,9 +2,6 @@
using Microsoft.Extensions.Logging;
using PARR.DAL.Models;
using PARR.DAL.Services.Interfaces;
using System.Collections;
using System.Globalization;
using System.Reflection;
namespace PARR.EsppTemplateSync.Services
{
@@ -76,15 +73,17 @@ namespace PARR.EsppTemplateSync.Services
//TODO деактивируем и видимо ещё что-то нужно
if (template == null)
{
esppTemplate.Status="Deactivating";
esppTemplate.isActive = false;
if (!await templateService.CreateAsync(esppTemplate) || !await templateService.CommitAsync())
{
logger.LogError($"Не удалось создать запись Template {esppTemplate.Name}({esppTemplate.ShortDescription})");
}
else
logger.LogInformation($"----- Создана запись Template {esppTemplate.Name}({esppTemplate.ShortDescription}) -----");
//TODO написать проверку успешности деактивации и удаление строки из таблицы Templates
//создает запись-шаблон из ЕСПП в ПАРР. Возможно избыточно так как эталон в ПАРР
//esppTemplate.Status="Deactivating";
//esppTemplate.isActive = false;
//if (!await templateService.CreateAsync(esppTemplate) || !await templateService.CommitAsync())
//{
// logger.LogError($"Не удалось создать запись Template {esppTemplate.Name}({esppTemplate.ShortDescription})");
//}
//else
// logger.LogInformation($"----- Создана запись Template {esppTemplate.Name}({esppTemplate.ShortDescription}) -----");
logger.LogWarning($"----- Найден шаблон ЕСПП незарегистрированный в ПАРР {esppTemplate.Name}({esppTemplate.ShortDescription}) -----");
}
else
{
@@ -92,28 +91,47 @@ namespace PARR.EsppTemplateSync.Services
foreach (var prop in template.GetType().GetProperties())
{
if (prop == null) continue;
if (prop.Name == "Id" ||
prop.Name == "Status" ||
prop.Name == "DateCreated" ||
prop.Name == "DateModified"
prop.Name == "DateModified" ||
prop.Name == "Status"
) continue;
if (!template.GetType().GetProperty(prop.Name).GetValue(template,null).Equals(
esppTemplate.GetType().GetProperty(prop.Name).GetValue(esppTemplate, null))
var parrValue = template.GetType().GetProperty(prop.Name)?.GetValue(template, null);
var esppValue = esppTemplate.GetType().GetProperty(prop.Name)?.GetValue(template, null);
if (parrValue == null || esppValue == null) continue;
if (parrValue!.ToString()!.ToLower().Equals(
esppValue!.ToString()!.ToLower())
)
{
isChanged = true; break;
isChanged = true;
break;
}
}
if (isChanged)
{
logger.LogInformation($"----- Запись в ЕСПП отличается от Template {esppTemplate.EK}({esppTemplate.ShortDescription}) -----");
logger.LogInformation($"----- Запись в ЕСПП отличается от Template {esppTemplate.Name}({esppTemplate.ShortDescription}) -----");
template.Status = "Updating";
if(!await templateService.CommitAsync())
logger.LogError($"Не удалось обновить запись Template {esppTemplate.EK}({esppTemplate.ShortDescription})");
logger.LogError($"Не удалось обновить запись Template {esppTemplate.Name}({esppTemplate.ShortDescription})");
else
logger.LogInformation($"----- Требуется обновление шаблона в ЕСПП роботом {esppTemplate.EK}({esppTemplate.ShortDescription}) -----");
logger.LogInformation($"----- Требуется обновление шаблона в ЕСПП роботом {esppTemplate.Name}({esppTemplate.ShortDescription}) -----");
}
else
{
if (template.Status != "Ok")
{
template.DateModified = DateTimeOffset.UtcNow;
template.Status = "Ok";
if (!await templateService.CommitAsync())
logger.LogInformation($"Шаблон в ЕСПП соответствует шаблону в ПАРР {esppTemplate.Name}({esppTemplate.ShortDescription}). Установлен статус Ok");
}
}
}

File diff suppressed because one or more lines are too long