forked from ddrilling/AsbCloudServer
refact finally
This commit is contained in:
parent
ff72a0cb88
commit
5a6ad78c21
@ -28,9 +28,20 @@ namespace AsbCloudApp.Services
|
|||||||
/// <param name="plannedTrajectoryRows"></param>
|
/// <param name="plannedTrajectoryRows"></param>
|
||||||
/// <param name="token"></param>
|
/// <param name="token"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<int> AddAsync(int idWell, int idUser,
|
Task<int> AddRangeAsync(int idWell, int idUser,
|
||||||
IEnumerable<PlannedTrajectoryDto> plannedTrajectoryRows, CancellationToken token);
|
IEnumerable<PlannedTrajectoryDto> plannedTrajectoryRows, CancellationToken token);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Добавить одну строку с координатами
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="idUser"></param>
|
||||||
|
/// <param name="plannedTrajectoryRow"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<int> AddAsync(int idWell, int idUser,
|
||||||
|
PlannedTrajectoryDto plannedTrajectoryRow, CancellationToken token);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Обновить строку с координатами
|
/// Обновить строку с координатами
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -22,22 +22,26 @@ namespace AsbCloudInfrastructure.Services.PlannedTrajectory
|
|||||||
this.db = db;
|
this.db = db;
|
||||||
this.wellService = wellService;
|
this.wellService = wellService;
|
||||||
}
|
}
|
||||||
public async Task<int> AddAsync(int idWell, int idUser,IEnumerable<PlannedTrajectoryDto> plannedTrajectoryRows, CancellationToken token)
|
public async Task<int> AddRangeAsync(int idWell, int idUser,IEnumerable<PlannedTrajectoryDto> plannedTrajectoryRows, CancellationToken token)
|
||||||
{
|
{
|
||||||
var timezone = wellService.GetTimezone(idWell);
|
var timezone = wellService.GetTimezone(idWell);
|
||||||
foreach (var dto in plannedTrajectoryRows)
|
var entitys = plannedTrajectoryRows
|
||||||
{
|
.Select(e => Convert(e, timezone, idWell, idUser));
|
||||||
var entity = dto.Adapt<AsbCloudDb.Model.PlannedTrajectory>();
|
db.PlannedTrajectorys.AddRange(entitys);
|
||||||
entity.IdWell = idWell;
|
|
||||||
entity.Id = default;
|
|
||||||
entity.UpdateDate = DateTime.Today.ToUtcDateTimeOffset(timezone.Hours);
|
|
||||||
entity.IdUser = idUser;
|
|
||||||
db.PlannedTrajectorys.Add(entity);
|
|
||||||
}
|
|
||||||
return await db.SaveChangesAsync(token)
|
return await db.SaveChangesAsync(token)
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<int> AddAsync(int idWell, int idUser, PlannedTrajectoryDto plannedTrajectoryRow, CancellationToken token)
|
||||||
|
{
|
||||||
|
var timezone = wellService.GetTimezone(idWell);
|
||||||
|
var entity = Convert(plannedTrajectoryRow, timezone, idWell, idUser);
|
||||||
|
db.PlannedTrajectorys.Add(entity);
|
||||||
|
return await db.SaveChangesAsync(token)
|
||||||
|
.ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public async Task<int> DeleteRangeAsync(IEnumerable<int> ids, CancellationToken token)
|
public async Task<int> DeleteRangeAsync(IEnumerable<int> ids, CancellationToken token)
|
||||||
{
|
{
|
||||||
var query = db.PlannedTrajectorys
|
var query = db.PlannedTrajectorys
|
||||||
@ -93,6 +97,18 @@ namespace AsbCloudInfrastructure.Services.PlannedTrajectory
|
|||||||
var dto = entity.Adapt<PlannedTrajectoryDto>();
|
var dto = entity.Adapt<PlannedTrajectoryDto>();
|
||||||
return dto;
|
return dto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static AsbCloudDb.Model.PlannedTrajectory Convert(PlannedTrajectoryDto dto, SimpleTimezoneDto timezone, int idWell, int idUser)
|
||||||
|
{
|
||||||
|
var entity = dto.Adapt<AsbCloudDb.Model.PlannedTrajectory>();
|
||||||
|
entity.IdWell = idWell;
|
||||||
|
entity.Id = default;
|
||||||
|
entity.UpdateDate = DateTime.Today.ToUtcDateTimeOffset(timezone.Hours);
|
||||||
|
entity.IdUser = idUser;
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
#nullable disable
|
#nullable disable
|
||||||
}
|
}
|
||||||
|
@ -30,8 +30,6 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
this.plannedTrajectoryService = plannedTrajectoryService;
|
this.plannedTrajectoryService = plannedTrajectoryService;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------FROM FILE-----------
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Возвращает шаблон для заполнения строк плановой траектории
|
/// Возвращает шаблон для заполнения строк плановой траектории
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -113,10 +111,6 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-------------MANUAL---------------
|
|
||||||
// !!! методы не реализованы в сервисе, в контроллере заглушка !!!
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Получаем список всех строк координат плановой траектории (для клиента)
|
/// Получаем список всех строк координат плановой траектории (для клиента)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -138,12 +132,12 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
idWell, token).ConfigureAwait(false))
|
idWell, token).ConfigureAwait(false))
|
||||||
return Forbid();
|
return Forbid();
|
||||||
|
|
||||||
var result = plannedTrajectoryService.GetAsync(idWell,token);
|
var result = plannedTrajectoryService.GetOrDefaultAsync(idWell,token);
|
||||||
return Ok(result);
|
return Ok(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавить новые координаты для плановой траектории
|
/// Добавить одну новую строчку координат для плановой траектории
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="idWell"></param>
|
/// <param name="idWell"></param>
|
||||||
/// <param name="row"></param>
|
/// <param name="row"></param>
|
||||||
@ -157,7 +151,34 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
{
|
{
|
||||||
if (!await CanUserAccessToWellAsync(idWell, token).ConfigureAwait(false))
|
if (!await CanUserAccessToWellAsync(idWell, token).ConfigureAwait(false))
|
||||||
return Forbid();
|
return Forbid();
|
||||||
var result = row;
|
int? idUser = User.GetUserId();
|
||||||
|
if (!idUser.HasValue)
|
||||||
|
return Forbid();
|
||||||
|
var result = await plannedTrajectoryService.AddAsync(idWell, idUser.Value, row, token)
|
||||||
|
.ConfigureAwait(false);
|
||||||
|
return Ok(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Добавить массив строчек координат для плановой траектории
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="rows"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
[Permission]
|
||||||
|
[ProducesResponseType(typeof(PlannedTrajectoryDto), (int)System.Net.HttpStatusCode.OK)]
|
||||||
|
public async Task<IActionResult> AddRowAsync(int idWell, [FromBody] IEnumerable<PlannedTrajectoryDto> rows,
|
||||||
|
CancellationToken token = default)
|
||||||
|
{
|
||||||
|
if (!await CanUserAccessToWellAsync(idWell, token).ConfigureAwait(false))
|
||||||
|
return Forbid();
|
||||||
|
int? idUser = User.GetUserId();
|
||||||
|
if (!idUser.HasValue)
|
||||||
|
return Forbid();
|
||||||
|
var result = await plannedTrajectoryService.AddRangeAsync(idWell, idUser.Value, rows, token)
|
||||||
|
.ConfigureAwait(false);
|
||||||
return Ok(result);
|
return Ok(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user