feat(esppSync, esppTemplateSync, esppScheduleSync): обновлена логика синхронизации полей. Если объект в БД деактивирован, то с ЕСПП сравниваются только поля isActive и название объекта.
This commit is contained in:
@@ -61,7 +61,24 @@ namespace PARR.EsppSync
|
||||
else
|
||||
{
|
||||
var dbObjectInEsppObject = converterToEsppObject.Invoke(template);
|
||||
var isChanged = IsChanged(esppObject, dbObjectInEsppObject);
|
||||
|
||||
bool isChanged;
|
||||
|
||||
// если в БД isActive == false, то синхронизировать только по полям из IEsppObject
|
||||
if (dbObjectInEsppObject.IsActive == false)
|
||||
{
|
||||
logger.LogDebug($"Объект деактивирован в ПАРР. Сравниваем только обязательные поля. {esppObject.TemplateName}");
|
||||
var lightDbObj = new EsppLightObject(dbObjectInEsppObject);
|
||||
var lightEsppObject = new EsppLightObject(esppObject);
|
||||
|
||||
isChanged = IsChanged(lightEsppObject, lightDbObj);
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.LogDebug($"Объект активирован в ПАРР. Сравниваем все поля. {esppObject.TemplateName}");
|
||||
isChanged = IsChanged(esppObject, dbObjectInEsppObject);
|
||||
}
|
||||
|
||||
|
||||
if (isChanged)
|
||||
{
|
||||
@@ -112,7 +129,8 @@ namespace PARR.EsppSync
|
||||
}
|
||||
|
||||
|
||||
private bool IsChanged(EsppObject esppObj, EsppObject dbObj)
|
||||
//private bool IsChanged(EsppObject esppObj, EsppObject dbObj)
|
||||
private bool IsChanged(object esppObj, object dbObj)
|
||||
{
|
||||
foreach (var prop in dbObj.GetType().GetProperties())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user