Add DrillParamsController.SaveAsync() it removes old records before add new ones.

This commit is contained in:
Фролов 2021-10-14 17:57:25 +05:00
parent aed661f202
commit caae2f970c
3 changed files with 39 additions and 2 deletions

View File

@ -24,5 +24,6 @@ namespace AsbCloudApp.Services
Task<int> UpdateAsync(int idWell, int dtoId, DrillParamsDto dto,
CancellationToken token = default);
Task<int> SaveAsync(int idWell, IEnumerable<DrillParamsDto> dtos, CancellationToken token = default);
}
}

View File

@ -120,7 +120,20 @@ namespace AsbCloudInfrastructure.Services
return result;
}
public async Task<int> SaveAsync(int idWell, IEnumerable<DrillParamsDto> dtos,
CancellationToken token = default)
{
db.DrillParams.RemoveRange(db.DrillParams.Where(d => d.IdWell == idWell));
foreach (var dto in dtos)
dto.IdWell = idWell;
var result = await base.InsertRangeAsync(dtos, token).ConfigureAwait(false);
return result;
}
public async Task<int> UpdateAsync(int idWell, int dtoId, DrillParamsDto dto,
CancellationToken token = default)
{

View File

@ -117,7 +117,30 @@ namespace AsbCloudWebApi.Controllers
return Ok(result);
}
/// <summary>
/// Удаляет старые режимы бурения по скважине и добавляет новые
/// </summary>
/// <param name="idWell">Id скважины для добавления</param>
/// <param name="drillParams">Новые режимы бурения </param>
/// <param name="token"></param>
/// <returns>кол-во затронутых изменениями записей</returns>
[HttpPost("save")]
[ProducesResponseType(typeof(int), (int)System.Net.HttpStatusCode.OK)]
public async Task<IActionResult> SaveAsync(int idWell, IEnumerable<DrillParamsDto> drillParams, CancellationToken token = default)
{
var idCompany = User.GetCompanyId();
if (idCompany is null || !await wellService.IsCompanyInvolvedInWellAsync((int)idCompany,
idWell, token).ConfigureAwait(false))
return Forbid();
var result = await drillParamsService.SaveAsync(idWell, drillParams,
token);
return Ok(result);
}
/// <summary>
/// Изменяет значения выбранного режима бурения
/// </summary>