diff --git a/PARR.AIHITMainLoader/PARR.AIHITMainLoader.csproj b/PARR.AIHITMainLoader/PARR.AIHITMainLoader.csproj
index bab09d97..2c1edbff 100644
--- a/PARR.AIHITMainLoader/PARR.AIHITMainLoader.csproj
+++ b/PARR.AIHITMainLoader/PARR.AIHITMainLoader.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/PARR.AIHITMainSyncer/Services/SyncerService.cs b/PARR.AIHITMainSyncer/Services/SyncerService.cs
index 8e826530..70dc91b5 100644
--- a/PARR.AIHITMainSyncer/Services/SyncerService.cs
+++ b/PARR.AIHITMainSyncer/Services/SyncerService.cs
@@ -288,6 +288,7 @@ private async Task SyncValuesAsync(List values)
if (hasNull && !existingValuesInDb.Contains(null))
newValuesToInsert.Add(null);
+ // Если нет новых значений, выходим БЕЗ вызова CommitAsync
if (newValuesToInsert.Count == 0)
{
logger.LogDebug("Нет новых значений для добавления в базу данных");
@@ -302,15 +303,19 @@ private async Task SyncValuesAsync(List values)
})
.ToList();
- // Только добавляем в контекст, НЕ коммитим
if (!await unitFieldValueRepository.AddRangeAsync(newFieldValues))
{
logger.LogError("Не удалось добавить {Count} новых значений FieldValues в контекст", newValuesToInsert.Count);
+ return;
}
- else
+ // Коммит выполняется ТОЛЬКО если были добавлены новые сущности
+ if (!await unitFieldValueRepository.CommitAsync())
{
- logger.LogDebug("Подготовлено {Count} новых значений FieldValues для сохранения", newValuesToInsert.Count);
+ logger.LogError("Не удалось сохранить {Count} новых значений FieldValues в базу данных", newValuesToInsert.Count);
+ return;
}
+
+ logger.LogDebug("Успешно сохранено {Count} новых значений FieldValues", newValuesToInsert.Count);
}
@@ -318,6 +323,7 @@ private async Task SyncValuesAsync(List values)
{
var newFields = fieldsFromAihit.Where(t => !fieldsFromDB.Any(f => IsStringEqual(f.AihitName, t))).ToList();
+ // Если нет новых полей, выходим БЕЗ вызова CommitAsync
if (!newFields.Any())
{
logger.LogDebug("Нет новых полей для добавления в базу данных");
@@ -335,18 +341,22 @@ private async Task SyncValuesAsync(List values)
EsppName = null,
};
- // Только добавляем в контекст, НЕ коммитим
if (!await unitFieldRepository.CreateAsync(field))
{
logger.LogError("Не удалось добавить поле в контекст: {FieldName}", item);
+ continue;
+ }
+
+ // Коммит выполняется ТОЛЬКО после успешного добавления конкретного поля
+ if (!await unitFieldRepository.CommitAsync())
+ {
+ logger.LogError("Не удалось сохранить поле в базу данных: {FieldName}", item);
}
else
{
- logger.LogDebug("Подготовлено поле для сохранения: {FieldName}", item);
+ logger.LogDebug("Успешно сохранено поле: {FieldName}", item);
}
- }
- }
-
+ } }
private bool IsStringEqual(string? value1, string? value2)
{
diff --git a/PARR.AIHITRelationshipsSyncer/PARR.AIHITRelationshipsSyncer.csproj b/PARR.AIHITRelationshipsSyncer/PARR.AIHITRelationshipsSyncer.csproj
index 86d1269e..d753153b 100644
--- a/PARR.AIHITRelationshipsSyncer/PARR.AIHITRelationshipsSyncer.csproj
+++ b/PARR.AIHITRelationshipsSyncer/PARR.AIHITRelationshipsSyncer.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/PARR.AIHITSyncerWorker/appsettings.Development.json b/PARR.AIHITSyncerWorker/appsettings.Development.json
index 6a9c166d..0a2fa9e5 100644
--- a/PARR.AIHITSyncerWorker/appsettings.Development.json
+++ b/PARR.AIHITSyncerWorker/appsettings.Development.json
@@ -1,31 +1,27 @@
{
- "Logging": {
- "LogLevel": {
- "Default": "Debug",
- "Microsoft.EntityFrameworkCore": "Debug",
- "Microsoft.EntityFrameworkCore.Database.Command": "Warning",
- "Microsoft.AspNetCore": "Warning"
- }
- },
- "Serilog": {
- "MinimumLevel": {
- "Default": "Debug",
- "Override": {
- //"Microsoft": "Information",
- "Microsoft.Hosting.Lifetime": "Information"
- }
+ "ConnectionStrings": {
+ "RedisConnection": "10.99.253.216:6379,password=ParrP@ssPtk202MMdevDvs"
},
- "WriteTo": [
- {
- "Name": "File",
- "Args": {
- "path": "log/log-.txt",
- "rollingInterval": "Day"
- }
- }
- ]
- },
- "MqSettings": {
- "HostName": "10.99.253.216"
- }
+ "Serilog": {
+ "MinimumLevel": {
+ "Default": "Debug",
+ "Override": {
+ "Microsoft": "Warning",
+ "Microsoft.Hosting.Lifetime": "Debug",
+ "PARR.DAL": "Information"
+ }
+ },
+ "WriteTo": [
+ {
+ "Name": "File",
+ "Args": {
+ "path": "log/log-.txt",
+ "rollingInterval": "Day"
+ }
+ }
+ ]
+ },
+ "MqSettings": {
+ "HostName": "10.99.253.216"
+ }
}
\ No newline at end of file
diff --git a/PARR.AIHITSyncerWorker/appsettings.json b/PARR.AIHITSyncerWorker/appsettings.json
index 1ba9c4ca..9360a6da 100644
--- a/PARR.AIHITSyncerWorker/appsettings.json
+++ b/PARR.AIHITSyncerWorker/appsettings.json
@@ -1,6 +1,7 @@
{
"ConnectionStrings": {
- "DefaultConnection": "Server=10.99.253.184;Database=parr;User Id=app_parr; Password=PosdfkhT&)%sdfligL&%5546;"
+ "DefaultConnection": "Server=10.99.253.184;Database=parr;User Id=app_parr; Password=PosdfkhT&)%sdfligL&%5546;",
+ "RedisConnection": "parr-redis:6379,password=ParrP@ssPtk202MMdevDvs"
},
"Logging": {
"LogLevel": {