refactor(api): Вынес логику выставления статуса робота из контроллера в Template сервис.

This commit is contained in:
Mikhail Trubnikov
2023-10-04 13:41:33 +10:00
parent d0b75b7f58
commit 3e67c96ed1
4 changed files with 77 additions and 24 deletions

View File

@@ -74,5 +74,29 @@ namespace PARR.DAL.Services.Implementations
logger.LogError($"Ошибка при сохранении изменений RobotStatus у шаблонов на {RobotStatusEnum.Error}");
}
public void ChangeRobotStatus(RobotStatusEnum status, ref Template template)
{
template.RobotStatusCode = (int)status;
switch (status)
{
case RobotStatusEnum.InProgress:
template.RobotAttemptsNumber++;
template.RobotLastStatusUpdated = DateTimeOffset.UtcNow;
break;
//case RobotStatusEnum.Error:
// break;
case RobotStatusEnum.Complete:
template.RobotLastStatusUpdated = DateTimeOffset.UtcNow;
break;
case RobotStatusEnum.Wait:
template.RobotLastStatusUpdated = null;
template.RobotAttemptsNumber = 0;
break;
default:
break;
}
}
}
}

View File

@@ -1,10 +1,18 @@
using PARR.DAL.Models;
using PARR.DAL.Contracts;
using PARR.DAL.Models;
using PARR.DAL.Services.Interfaces.Base;
namespace PARR.DAL.Services.Interfaces
{
public interface ITemplateService : IBaseService<Template>
{
/// <summary>
/// Изменение статуса отработки робота (без коммита)
/// </summary>
/// <param name="status"></param>
/// <param name="template"></param>
void ChangeRobotStatus(RobotStatusEnum status, ref Template template);
/// <summary>
/// Поиск шаблонов с просроченным временем выполнения роботом и превышенным кол-вом попыток. Установка им ошибочного статуса
/// </summary>