feat(api, bll, dal, generatorTemplates, templateActivator): запись истории изменения шаблонов

This commit is contained in:
Mikhail Trubnikov
2024-10-08 10:29:34 +10:00
parent 54fed9b597
commit a494b69ee6
22 changed files with 140 additions and 67 deletions

View File

@@ -1,4 +1,5 @@
using PARR.Constants;
using PARR.Common.Domain;
using PARR.Constants;
namespace PARR.TemplateActivator;
@@ -10,5 +11,5 @@ public interface ITemplateActivator
/// <param name="applicationInWorkId"></param>
/// <param name="action"></param>
/// <returns></returns>
Task ChangeStateAsync(Guid applicationInWorkId, TemplateActivatorActionsEnum action);
Task ChangeStateAsync(Guid applicationInWorkId, TemplateActivatorActionsEnum action, IHistoryInitiator? historyInitiator);
}

View File

@@ -59,7 +59,7 @@ internal class MqTemplateActivator : IMqTemplateActivator
if (service == null)
throw new Exception($"{this.GetType().Name}. Не найден сервис: {nameof(service.GetType)}");
await service.ChangeStateAsync(query.ApplicationInWorkId, query.Action);
await service.ChangeStateAsync(query.ApplicationInWorkId, query.Action, query.HistoryInitiator);
}
}

View File

@@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using PARR.BLL.Helpers;
using PARR.Common.Domain;
using PARR.Constants;
using PARR.DAL.Contracts;
using PARR.DAL.Models;
@@ -34,7 +35,7 @@ internal class TemplateActivator : ITemplateActivator
}
public async Task ChangeStateAsync(Guid applicationInWorkId, TemplateActivatorActionsEnum action)
public async Task ChangeStateAsync(Guid applicationInWorkId, TemplateActivatorActionsEnum action, IHistoryInitiator? historyInitiator)
{
var query = templateService.Get()
.Include(t => t.RobotConfigurations).ThenInclude(t => t.Robot)
@@ -103,7 +104,10 @@ internal class TemplateActivator : ITemplateActivator
break;
}
if (changes > 0 && !await templateService.CommitAsync())
if (historyInitiator != null)
historyInitiator.InitiatorComment += $" Action: {action.ToString()}";
if (changes > 0 && !await templateService.CommitAsync(historyInitiator))
logger.LogError($"{GetType().Name} не удалось записать измения в БД о новых состояниях шаблонов и расписаний регламентной работы Id {applicationInWorkId}");
logger.LogDebug($"{GetType().Name} изменил состояние шаблонов/расписаний({changes}) регламентной работы Id {applicationInWorkId}");