From 3e67c96ed1e13c323417d170726f66d54e53343b Mon Sep 17 00:00:00 2001 From: Mikhail Trubnikov Date: Wed, 4 Oct 2023 13:41:33 +1000 Subject: [PATCH] =?UTF-8?q?refactor(api):=20=D0=92=D1=8B=D0=BD=D0=B5=D1=81?= =?UTF-8?q?=20=D0=BB=D0=BE=D0=B3=D0=B8=D0=BA=D1=83=20=D0=B2=D1=8B=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D1=82=D1=83=D1=81=D0=B0=20=D1=80=D0=BE=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0=20=D0=B8=D0=B7=20=D0=BA=D0=BE=D0=BD=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=BB=D0=BB=D0=B5=D1=80=D0=B0=20=D0=B2=20Template=20=D1=81?= =?UTF-8?q?=D0=B5=D1=80=D0=B2=D0=B8=D1=81.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../V1/RobotTemplateHistoryController.cs | 12 ++++ .../V1/TemplateRobotStatusController.cs | 55 +++++++++++-------- .../Implementations/TemplateService.cs | 24 ++++++++ .../Services/Interfaces/ITemplateService.cs | 10 +++- 4 files changed, 77 insertions(+), 24 deletions(-) create mode 100644 PARR.API/Controllers/V1/RobotTemplateHistoryController.cs 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