diff --git a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanBaseController.cs b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanBaseController.cs index 34668ac8..45da7f11 100644 --- a/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanBaseController.cs +++ b/AsbCloudWebApi/Controllers/ProcessMaps/ProcessMapPlanBaseController.cs @@ -53,12 +53,13 @@ public abstract class ProcessMapPlanBaseController : ControllerBase [HttpPost] [ProducesResponseType(typeof(int), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ValidationProblemDetails), StatusCodes.Status400BadRequest)] - public async Task InsertRange([FromRoute] int idWell, IEnumerable dtos, CancellationToken token) + public async Task InsertRange([FromRoute][Range(0,int.MaxValue)] int idWell, IEnumerable dtos, CancellationToken token) { - if (idWell == 0 || dtos.Any(d => d.IdWell != idWell)) - return this.ValidationBadRequest(nameof(dtos), "all dtos should contain same idWell"); - var idUser = await AssertUserHasAccessToWell(idWell, token); + + foreach (var dto in dtos) + dto.IdWell = idWell; + var result = await repository.InsertRange(idUser, dtos, token); return Ok(result); } @@ -75,11 +76,11 @@ public abstract class ProcessMapPlanBaseController : ControllerBase [ProducesResponseType(typeof(ValidationProblemDetails), StatusCodes.Status400BadRequest)] public async Task ClearAndInsertRange([FromRoute] int idWell, IEnumerable dtos, CancellationToken token) { - if (idWell == 0 || dtos.Any(d => d.IdWell != idWell)) - return this.ValidationBadRequest(nameof(dtos), "all dtos should contain same idWell"); - var idUser = await AssertUserHasAccessToWell(idWell, token); + foreach (var dto in dtos) + dto.IdWell = idWell; + var request = new ProcessMapPlanBaseRequestWithWell(idWell); var result = await repository.ClearAndInsertRange(idUser, request, dtos, token); return Ok(result); @@ -189,15 +190,14 @@ public abstract class ProcessMapPlanBaseController : ControllerBase [ProducesResponseType(typeof(ValidationProblemDetails), StatusCodes.Status400BadRequest)] public async Task UpdateOrInsertRange([FromRoute] int idWell, IEnumerable dtos, CancellationToken token) { - var first = dtos.FirstOrDefault(); - if (first is null) + if (!dtos.Any()) return NoContent(); - - if (idWell == 0 || dtos.Any(d => d.IdWell != idWell)) - return this.ValidationBadRequest(nameof(dtos), "all dtos should contain same idWell"); - + var idUser = await AssertUserHasAccessToWell(idWell, token); + foreach (var dto in dtos) + dto.IdWell = idWell; + var result = await repository.UpdateOrInsertRange(idUser, dtos, token); return Ok(result); } @@ -223,6 +223,9 @@ public abstract class ProcessMapPlanBaseController : ControllerBase try { var dto = parserService.Parse(stream, IParserOptionsRequest.Empty()); + foreach (var item in dto.Item) + item.Item.IdWell = idWell; + return Ok(dto); } catch (FileFormatException ex)