diff --git a/AsbCloudWebApi/Controllers/WellController.cs b/AsbCloudWebApi/Controllers/WellController.cs
index e92840ee..627b2f88 100644
--- a/AsbCloudWebApi/Controllers/WellController.cs
+++ b/AsbCloudWebApi/Controllers/WellController.cs
@@ -1,8 +1,10 @@
using AsbCloudApp.Data;
using AsbCloudApp.Services;
+using AsbCloudDb.Model;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
using System.Threading;
using System.Threading.Tasks;
@@ -112,5 +114,35 @@ namespace AsbCloudWebApi.Controllers
return Ok(result);
}
+
+ ///
+ /// Обновляет статус скважины
+ ///
+ /// ключ скважины
+ /// статус: 0 - Неизвестно, 1 - В работе, 2 - Завершена.
+ ///
+ ///
+ [HttpPut("{idWell}/state")]
+ [Permission]
+ [ProducesResponseType(typeof(int), (int)System.Net.HttpStatusCode.OK)]
+ public async Task UpdateWellStateAsync(int idWell,
+ [Range(0, 2, ErrorMessage = "Статус некорректен")] int idState,
+ CancellationToken token = default)
+ {
+ var idCompany = User.GetCompanyId();
+
+ if (idCompany is null || !await wellService.IsCompanyInvolvedInWellAsync((int)idCompany,
+ idWell, token).ConfigureAwait(false))
+ return Forbid();
+
+ var dto = wellService.GetOrDefault(idWell)!;
+ dto.IdState = idState;
+
+ var result = await wellService.UpdateAsync(dto, token)
+ .ConfigureAwait(false);
+
+ return Ok(result);
+
+ }
}
}