feat(api): appInWorkContoller добавлен метод Update

This commit is contained in:
Mikhail Kuznetsov
2024-03-27 12:42:58 +10:00
parent 1d60c9d17d
commit 1d33813949
2 changed files with 44 additions and 3 deletions

View File

@@ -128,9 +128,11 @@ namespace PARR.API.Controllers.V1
/// <param name="id"></param>
/// <returns></returns>
[HttpGet(ApiRoutes.Job.Get)]
public async Task<IActionResult> GetById([FromRoute] Guid id)
public async Task<IActionResult> 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<ApplicationInWorkResponse>(response, true));
}
/// <summary>
/// Обновить задание на выполнение работ
/// </summary>
/// <param name="id"></param>
/// <param name="request"></param>
/// <returns></returns>
[HttpPut(ApiRoutes.Job.Update)]
public async Task<IActionResult> 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<ErrorModel> { 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<ErrorModel> { 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<ApplicationInWorkResponse>(mapper.Map<ApplicationInWorkResponse>(orig), true));
}
}
}