feat(api): Логика смены статусов для заданий робота. RobotTaskController

This commit is contained in:
Mikhail Trubnikov
2023-10-05 16:56:02 +10:00
parent 4679994600
commit af4a0b60b8
26 changed files with 2779 additions and 126 deletions

View File

@@ -43,6 +43,8 @@ namespace PARR.DAL.Services.Implementations
.ThenInclude(p => p!.Process);
}
//TODO: удалить этот метод
#region delete
public async Task CheckAndSetErrorRobotStatusAsync(int robotAttemptsNumber, TimeSpan robotWaitTime)
{
//Ищем `RobotStatusCode` = 22 и `RobotLastStatusUpdated` истекло и `RobotAttemptsNumber` >= допустимого значения из настроек,
@@ -74,6 +76,7 @@ namespace PARR.DAL.Services.Implementations
logger.LogError($"Ошибка при сохранении изменений RobotStatus у шаблонов на {RobotStatusEnum.Error}");
}
#endregion
public void ChangeRobotStatus(RobotStatusEnum status, ref Template template)
{
@@ -98,5 +101,39 @@ namespace PARR.DAL.Services.Implementations
break;
}
}
public override Task<bool> CreateAsync(Template obj)
{
// добавление роботов для шаблона
obj.RobotConfigurations = new List<RobotConfiguration>
{
// робот по управлению шаблоном
new RobotConfiguration
{
Id = Guid.NewGuid(),
DateCreated = DateTimeOffset.UtcNow,
TemplateId = obj.Id,
RobotCode = (int)RobotsEnum.TemplateOrder,
TaskStatusCode = (int)TaskStatusEnum.Creating,
RobotStatusCode = (int)RobotStatusEnum.Wait,
AttemptsNumber = 0,
LastStatusUpdated = null
},
// робот по управлениею расписанием
new RobotConfiguration
{
Id = Guid.NewGuid(),
DateCreated = DateTimeOffset.UtcNow,
TemplateId = obj.Id,
RobotCode = (int)RobotsEnum.ScheduleOrder,
TaskStatusCode = (int)TaskStatusEnum.Creating,
RobotStatusCode = (int)RobotStatusEnum.Wait,
AttemptsNumber = 0,
LastStatusUpdated = null
}
};
return base.CreateAsync(obj);
}
}
}