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));
+
+ }
}
}