diff --git a/PARR.API/Contracts/V1/ApiRoutes.cs b/PARR.API/Contracts/V1/ApiRoutes.cs index c29d0210..21636611 100644 --- a/PARR.API/Contracts/V1/ApiRoutes.cs +++ b/PARR.API/Contracts/V1/ApiRoutes.cs @@ -290,8 +290,6 @@ public const string GetAll = Base + "/jobs/"; public const string Get = Base + "/jobs/" + getParam; - public const string GetScheduler = Base + "/jobs/" + getParam + "/scheduller"; - public const string Delete = Base + "/jobs/" + getParam; public const string Create = Base + "/jobs/"; public const string Update = Base + "/jobs/" + getParam; diff --git a/PARR.API/Controllers/V1/ApplicationInWorkController.cs b/PARR.API/Controllers/V1/ApplicationInWorkController.cs index b335db0b..3f915bc2 100644 --- a/PARR.API/Controllers/V1/ApplicationInWorkController.cs +++ b/PARR.API/Controllers/V1/ApplicationInWorkController.cs @@ -128,9 +128,11 @@ namespace PARR.API.Controllers.V1 /// /// [HttpGet(ApiRoutes.Job.Get)] - public async Task GetById([FromRoute] Guid id) + public async Task GetById([FromRoute] Guid id) { var applicationInWork = await applicationsInWorkService.Get() + .Include(t => t.Application) + .Include(t => t.Work) .FirstOrDefaultAsync(t => t.Id == id); if (applicationInWork == null) @@ -140,5 +142,46 @@ namespace PARR.API.Controllers.V1 return Ok(new Response(response, true)); } + + /// + /// Обновить задание на выполнение работ + /// + /// + /// + /// + [HttpPut(ApiRoutes.Job.Update)] + public async Task Update([FromRoute] Guid id, [FromBody] ApplicationInWorkRequest request) + { + var resultValidate = await validator.ValidateAsync(request); + if (!resultValidate.IsValid) + return BadRequest(new Response(resultValidate.Errors)); + + var orig = await applicationsInWorkService.GetAsync(id); + + if (orig == null) + return BadRequest(new Response(false, new List { new ErrorModel { Message = $"Ошибка при изменении задания на выполнение работ. Не найдено задание на выполнение работ Id: {id}" } })); + + orig.WorkId = request.WorkId; + orig.ApplicationId = request.ApplicationId; + orig.TemplateDuration = request.TemplateDuration; + orig.ShortDescription = request.ShortDescription; + orig.FullDescription = request.FullDescription; + orig.Solution = request.Solution; + orig.NextRun = request.NextRun; + orig.IsAgent = request.IsAgent; + orig.AgentName = request.AgentName; + orig.AgentTimeOutSec = request.AgentTimeOutSec; + orig.AgentScript = request.AgentScript; + + if (!await applicationsInWorkService.CommitAsync()) + return BadRequest(new Response(false, new List { new ErrorModel { Message = "Ошибка записи в базу данных изменений задания на выполнение работ." } })); + + logger.LogInformation($"Пользователь {User.Identity?.Name} обновил задание на выполнение работ: {orig.Id}," + + $" {orig.WorkId}, {orig.ApplicationId}, {orig.TemplateDuration}, {orig.ShortDescription}," + + $" {orig.FullDescription}, {orig.Solution}, {orig.NextRun}, {orig.IsAgent}, {orig.AgentName}, {orig.AgentTimeOutSec}, {orig.AgentScript}"); + + return Ok(new Response(mapper.Map(orig), true)); + + } } }