forked from ddrilling/AsbCloudServer
Merge branch 'dev' of https://bitbucket.org/autodrilling/asbcloudserver into dev
This commit is contained in:
commit
aab6064153
11
AsbCloudApp/Data/WellUpdateDto.cs
Normal file
11
AsbCloudApp/Data/WellUpdateDto.cs
Normal file
@ -0,0 +1,11 @@
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
public class WellUpdateParamsDto
|
||||
{
|
||||
public string Caption { get; set; }
|
||||
public double? Latitude { get; set; }
|
||||
public double? Longitude { get; set; }
|
||||
public int IdWellType { get; set; }
|
||||
public int State { get; set; }
|
||||
}
|
||||
}
|
@ -8,9 +8,7 @@ namespace AsbCloudApp.Services
|
||||
public interface IWellService
|
||||
{
|
||||
Task<IEnumerable<WellDto>> GetWellsByCompanyAsync(int idCompany, CancellationToken token);
|
||||
Task<int> UpdateWellAsync(int idWell, string caption = default,
|
||||
double latitude = default, double longitude = default, int idWellType = default,
|
||||
int state = default, CancellationToken token = default);
|
||||
Task<int?> UpdateWellAsync(int idWell, WellUpdateParamsDto dto, CancellationToken token = default);
|
||||
Task<IEnumerable<WellDto>> GetTransmittingWellsAsync(int idCompany, CancellationToken token);
|
||||
Task<bool> IsCompanyInvolvedInWellAsync(int idCompany, int idWell, CancellationToken token);
|
||||
Task<string> GetWellCaptionByIdAsync(int idWell, CancellationToken token);
|
||||
|
@ -43,33 +43,27 @@ namespace AsbCloudInfrastructure.Services
|
||||
});
|
||||
}
|
||||
|
||||
public async Task<int> UpdateWellAsync(int idWell, string caption = default,
|
||||
double latitude = default, double longitude = default, int idWellType = default,
|
||||
int state = default, CancellationToken token = default)
|
||||
public async Task<int?> UpdateWellAsync(int idWell, WellUpdateParamsDto dto,
|
||||
CancellationToken token = default)
|
||||
{
|
||||
if (dto.IdWellType is < 1 or > 2)
|
||||
throw new ArgumentException("Тип секции указан неправильно.");
|
||||
|
||||
if (dto.State is < 0 or > 2)
|
||||
throw new ArgumentException("Текущее состояние работы скважины" +
|
||||
"указано неправильно.");
|
||||
var well = await db.Wells
|
||||
.FirstOrDefaultAsync(w => w.Id == idWell, token)
|
||||
.ConfigureAwait(false);
|
||||
|
||||
if (well is null)
|
||||
return 0;
|
||||
return null;
|
||||
|
||||
if (caption != default)
|
||||
well.Caption = caption;
|
||||
|
||||
if (latitude != default)
|
||||
well.Latitude = latitude;
|
||||
|
||||
if (longitude != default)
|
||||
well.Longitude = longitude;
|
||||
|
||||
if (idWellType != default)
|
||||
well.IdWellType = idWellType;
|
||||
|
||||
if (state < 3)
|
||||
well.State = state;
|
||||
else
|
||||
throw new ArgumentException("Недопустимое значение состояния работы скважины");
|
||||
well.Caption = dto.Caption;
|
||||
well.Latitude = dto.Latitude;
|
||||
well.Longitude = dto.Longitude;
|
||||
well.IdWellType = dto.IdWellType;
|
||||
well.State = dto.State;
|
||||
|
||||
db.Wells.Update(well);
|
||||
|
||||
|
@ -74,18 +74,15 @@ namespace AsbCloudWebApi.Controllers
|
||||
/// Редактирует указанные поля скважины
|
||||
/// </summary>
|
||||
/// <param name="idWell"> Id скважины </param>
|
||||
/// <param name="caption"> Название скважины </param>
|
||||
/// <param name="latitude"> Широта координат скважины </param>
|
||||
/// <param name="longitude"> Долгота координат скважины </param>
|
||||
/// <param name="idWellType"> Id типа скважины </param>
|
||||
/// <param name="state"> Id текущего состояния скважины </param>
|
||||
/// <param name="dto"> Объект параметров скважины.
|
||||
/// IdWellType: 1 - Наклонно-направленная, 2 - Горизонтальная.
|
||||
/// State: 0 - Неизвестно, 1 - В работе, 2 - Завершена.</param>
|
||||
/// <param name="token"> Токен отмены задачи </param>
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
[ProducesResponseType(typeof(int), (int)System.Net.HttpStatusCode.OK)]
|
||||
public async Task<IActionResult> UpdateWellAsync(int idWell, string caption = default,
|
||||
double latitude = default, double longitude = default, int idWellType = default,
|
||||
int state = default, CancellationToken token = default)
|
||||
public async Task<IActionResult> UpdateWellAsync(int idWell, WellUpdateParamsDto dto,
|
||||
CancellationToken token = default)
|
||||
{
|
||||
var idCompany = User.GetCompanyId();
|
||||
|
||||
@ -93,8 +90,8 @@ namespace AsbCloudWebApi.Controllers
|
||||
idWell, token).ConfigureAwait(false))
|
||||
return Forbid();
|
||||
|
||||
var result = await wellService.UpdateWellAsync(idWell, caption, latitude, longitude,
|
||||
idWellType, state, token).ConfigureAwait(false);
|
||||
var result = await wellService.UpdateWellAsync(idWell, dto, token)
|
||||
.ConfigureAwait(false);
|
||||
|
||||
return Ok(result);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user