diff --git a/PARR.API/Controllers/V1/RobotTemplateHistoryController.cs b/PARR.API/Controllers/V1/RobotTemplateHistoryController.cs new file mode 100644 index 00000000..9d4215a4 --- /dev/null +++ b/PARR.API/Controllers/V1/RobotTemplateHistoryController.cs @@ -0,0 +1,12 @@ +using Microsoft.AspNetCore.Mvc; +using PARR.API.Controllers.V1.Base; + +namespace PARR.API.Controllers.V1 +{ + public class RobotTemplateHistoryController : BaseApiController + { + // get + + + } +} diff --git a/PARR.API/Controllers/V1/TemplateRobotStatusController.cs b/PARR.API/Controllers/V1/TemplateRobotStatusController.cs index abeaa0bd..56ecf3f0 100644 --- a/PARR.API/Controllers/V1/TemplateRobotStatusController.cs +++ b/PARR.API/Controllers/V1/TemplateRobotStatusController.cs @@ -8,6 +8,7 @@ using PARR.API.Contracts.V1.Responses; using PARR.API.Contracts.V1.Responses.Base; using PARR.API.Controllers.V1.Base; using PARR.DAL.Contracts; +using PARR.DAL.Models; using PARR.DAL.Services.Interfaces; namespace PARR.API.Controllers.V1 @@ -69,28 +70,37 @@ namespace PARR.API.Controllers.V1 if (template == null) return BadRequest(new Response(false, new List { new ErrorModel { Message = $"Не найден шаблон с id: {templateId}" } })); - switch (request.Code) - { - case (int)RobotStatusEnum.InProgress: - template.RobotAttemptsNumber++; - template.RobotStatusCode = request.Code; - template.RobotLastStatusUpdated = DateTimeOffset.UtcNow; - break; - case (int)RobotStatusEnum.Error: - template.RobotStatusCode = request.Code; - break; - case (int)RobotStatusEnum.Complete: - template.RobotStatusCode = request.Code; - template.RobotLastStatusUpdated = DateTimeOffset.UtcNow; - break; - case (int)RobotStatusEnum.Wait: - template.RobotStatusCode = request.Code; - template.RobotLastStatusUpdated = null; - template.RobotAttemptsNumber = 0; - break; - default: - break; - } + var enumStatus = (RobotStatusEnum)request.Code; + + // изменение статуса + templateService.ChangeRobotStatus(enumStatus, ref template); + + //switch (request.Code) + //{ + // case (int)RobotStatusEnum.InProgress: + // template.RobotAttemptsNumber++; + // template.RobotStatusCode = request.Code; + // template.RobotLastStatusUpdated = DateTimeOffset.UtcNow; + // break; + // case (int)RobotStatusEnum.Error: + // template.RobotStatusCode = request.Code; + // break; + // case (int)RobotStatusEnum.Complete: + // template.RobotStatusCode = request.Code; + // template.RobotLastStatusUpdated = DateTimeOffset.UtcNow; + // break; + // case (int)RobotStatusEnum.Wait: + // template.RobotStatusCode = request.Code; + // template.RobotLastStatusUpdated = null; + // template.RobotAttemptsNumber = 0; + // break; + // default: + // break; + //} + + + + if (!await templateService.CommitAsync()) return BadRequest(new Response(false, new List { new ErrorModel { Message = $"Ошибка при изменении статуса шаблону {templateId}" } })); @@ -104,6 +114,5 @@ namespace PARR.API.Controllers.V1 return Ok(new Response(response, true)); } - } } diff --git a/PARR.DAL/Services/Implementations/TemplateService.cs b/PARR.DAL/Services/Implementations/TemplateService.cs index e1ace5be..7b7508ec 100644 --- a/PARR.DAL/Services/Implementations/TemplateService.cs +++ b/PARR.DAL/Services/Implementations/TemplateService.cs @@ -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; + } + } } } diff --git a/PARR.DAL/Services/Interfaces/ITemplateService.cs b/PARR.DAL/Services/Interfaces/ITemplateService.cs index aee39104..b26cc6f7 100644 --- a/PARR.DAL/Services/Interfaces/ITemplateService.cs +++ b/PARR.DAL/Services/Interfaces/ITemplateService.cs @@ -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