refactor(api): Вынес логику выставления статуса робота из контроллера в Template сервис.
This commit is contained in:
12
PARR.API/Controllers/V1/RobotTemplateHistoryController.cs
Normal file
12
PARR.API/Controllers/V1/RobotTemplateHistoryController.cs
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using PARR.API.Controllers.V1.Base;
|
||||||
|
|
||||||
|
namespace PARR.API.Controllers.V1
|
||||||
|
{
|
||||||
|
public class RobotTemplateHistoryController : BaseApiController
|
||||||
|
{
|
||||||
|
// get
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@ using PARR.API.Contracts.V1.Responses;
|
|||||||
using PARR.API.Contracts.V1.Responses.Base;
|
using PARR.API.Contracts.V1.Responses.Base;
|
||||||
using PARR.API.Controllers.V1.Base;
|
using PARR.API.Controllers.V1.Base;
|
||||||
using PARR.DAL.Contracts;
|
using PARR.DAL.Contracts;
|
||||||
|
using PARR.DAL.Models;
|
||||||
using PARR.DAL.Services.Interfaces;
|
using PARR.DAL.Services.Interfaces;
|
||||||
|
|
||||||
namespace PARR.API.Controllers.V1
|
namespace PARR.API.Controllers.V1
|
||||||
@@ -69,28 +70,37 @@ namespace PARR.API.Controllers.V1
|
|||||||
if (template == null)
|
if (template == null)
|
||||||
return BadRequest(new Response(false, new List<ErrorModel> { new ErrorModel { Message = $"Не найден шаблон с id: {templateId}" } }));
|
return BadRequest(new Response(false, new List<ErrorModel> { new ErrorModel { Message = $"Не найден шаблон с id: {templateId}" } }));
|
||||||
|
|
||||||
switch (request.Code)
|
var enumStatus = (RobotStatusEnum)request.Code;
|
||||||
{
|
|
||||||
case (int)RobotStatusEnum.InProgress:
|
// изменение статуса
|
||||||
template.RobotAttemptsNumber++;
|
templateService.ChangeRobotStatus(enumStatus, ref template);
|
||||||
template.RobotStatusCode = request.Code;
|
|
||||||
template.RobotLastStatusUpdated = DateTimeOffset.UtcNow;
|
//switch (request.Code)
|
||||||
break;
|
//{
|
||||||
case (int)RobotStatusEnum.Error:
|
// case (int)RobotStatusEnum.InProgress:
|
||||||
template.RobotStatusCode = request.Code;
|
// template.RobotAttemptsNumber++;
|
||||||
break;
|
// template.RobotStatusCode = request.Code;
|
||||||
case (int)RobotStatusEnum.Complete:
|
// template.RobotLastStatusUpdated = DateTimeOffset.UtcNow;
|
||||||
template.RobotStatusCode = request.Code;
|
// break;
|
||||||
template.RobotLastStatusUpdated = DateTimeOffset.UtcNow;
|
// case (int)RobotStatusEnum.Error:
|
||||||
break;
|
// template.RobotStatusCode = request.Code;
|
||||||
case (int)RobotStatusEnum.Wait:
|
// break;
|
||||||
template.RobotStatusCode = request.Code;
|
// case (int)RobotStatusEnum.Complete:
|
||||||
template.RobotLastStatusUpdated = null;
|
// template.RobotStatusCode = request.Code;
|
||||||
template.RobotAttemptsNumber = 0;
|
// template.RobotLastStatusUpdated = DateTimeOffset.UtcNow;
|
||||||
break;
|
// break;
|
||||||
default:
|
// case (int)RobotStatusEnum.Wait:
|
||||||
break;
|
// template.RobotStatusCode = request.Code;
|
||||||
}
|
// template.RobotLastStatusUpdated = null;
|
||||||
|
// template.RobotAttemptsNumber = 0;
|
||||||
|
// break;
|
||||||
|
// default:
|
||||||
|
// break;
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (!await templateService.CommitAsync())
|
if (!await templateService.CommitAsync())
|
||||||
return BadRequest(new Response(false, new List<ErrorModel> { new ErrorModel { Message = $"Ошибка при изменении статуса шаблону {templateId}" } }));
|
return BadRequest(new Response(false, new List<ErrorModel> { new ErrorModel { Message = $"Ошибка при изменении статуса шаблону {templateId}" } }));
|
||||||
@@ -104,6 +114,5 @@ namespace PARR.API.Controllers.V1
|
|||||||
return Ok(new Response<TemplateRobotStatusResponse>(response, true));
|
return Ok(new Response<TemplateRobotStatusResponse>(response, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,5 +74,29 @@ namespace PARR.DAL.Services.Implementations
|
|||||||
logger.LogError($"Ошибка при сохранении изменений RobotStatus у шаблонов на {RobotStatusEnum.Error}");
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,18 @@
|
|||||||
using PARR.DAL.Models;
|
using PARR.DAL.Contracts;
|
||||||
|
using PARR.DAL.Models;
|
||||||
using PARR.DAL.Services.Interfaces.Base;
|
using PARR.DAL.Services.Interfaces.Base;
|
||||||
|
|
||||||
namespace PARR.DAL.Services.Interfaces
|
namespace PARR.DAL.Services.Interfaces
|
||||||
{
|
{
|
||||||
public interface ITemplateService : IBaseService<Template>
|
public interface ITemplateService : IBaseService<Template>
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Изменение статуса отработки робота (без коммита)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="status"></param>
|
||||||
|
/// <param name="template"></param>
|
||||||
|
void ChangeRobotStatus(RobotStatusEnum status, ref Template template);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Поиск шаблонов с просроченным временем выполнения роботом и превышенным кол-вом попыток. Установка им ошибочного статуса
|
/// Поиск шаблонов с просроченным временем выполнения роботом и превышенным кол-вом попыток. Установка им ошибочного статуса
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user