forked from ddrilling/AsbCloudServer
Валидация категории скважины
This commit is contained in:
parent
4a60a8fb12
commit
da9f88f058
@ -298,7 +298,7 @@ namespace AsbCloudInfrastructure.Services.WellOperationService
|
|||||||
if (vCategory is string categoryName)
|
if (vCategory is string categoryName)
|
||||||
{
|
{
|
||||||
var category = Categories.Find(c => c.Name.ToLower() == categoryName.ToLower());
|
var category = Categories.Find(c => c.Name.ToLower() == categoryName.ToLower());
|
||||||
if (category is null)
|
if (category is null || category.Id < 5000)
|
||||||
throw new FileFormatException($"Лист {row.Worksheet.Name}. Строка {row.RowNumber()} указана некорректная операция");
|
throw new FileFormatException($"Лист {row.Worksheet.Name}. Строка {row.RowNumber()} указана некорректная операция");
|
||||||
|
|
||||||
operation.IdCategory = category.Id;
|
operation.IdCategory = category.Id;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using AsbCloudApp.Data;
|
using AsbCloudApp.Data;
|
||||||
|
using AsbCloudApp.Exceptions;
|
||||||
using AsbCloudApp.Repositories;
|
using AsbCloudApp.Repositories;
|
||||||
using AsbCloudApp.Requests;
|
using AsbCloudApp.Requests;
|
||||||
using AsbCloudApp.Services;
|
using AsbCloudApp.Services;
|
||||||
@ -9,6 +10,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
@ -202,18 +204,21 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
[Permission]
|
[Permission]
|
||||||
[ProducesResponseType(typeof(IEnumerable<WellOperationDto>), (int)System.Net.HttpStatusCode.OK)]
|
[ProducesResponseType(typeof(IEnumerable<WellOperationDto>), (int)System.Net.HttpStatusCode.OK)]
|
||||||
public async Task<IActionResult> InsertRangeAsync(
|
public async Task<IActionResult> InsertRangeAsync(
|
||||||
[Range(1, int.MaxValue, ErrorMessage = "Id скважины не может быть меньше 1")] int idWell,
|
[Range(1, int.MaxValue, ErrorMessage = "Id скважины не может быть меньше 1")] int idWell,
|
||||||
[FromBody] IEnumerable<WellOperationDto> values,
|
[FromBody] IEnumerable<WellOperationDto> values,
|
||||||
CancellationToken token)
|
CancellationToken token)
|
||||||
{
|
{
|
||||||
if (!await CanUserAccessToWellAsync(idWell, token).ConfigureAwait(false))
|
if (!await CanUserAccessToWellAsync(idWell, token).ConfigureAwait(false))
|
||||||
return Forbid();
|
return Forbid();
|
||||||
|
|
||||||
|
if (values.Any(v => v.IdCategory < 5000))
|
||||||
|
throw new ArgumentInvalidException($"Некорректная категория скважины / скважин", nameof(values));
|
||||||
|
|
||||||
foreach (var value in values)
|
foreach (var value in values)
|
||||||
{
|
{
|
||||||
value.IdWell = idWell;
|
value.IdWell = idWell;
|
||||||
value.LastUpdateDate = DateTimeOffset.UtcNow;
|
value.LastUpdateDate = DateTimeOffset.UtcNow;
|
||||||
value.IdUser = User.GetUserId();
|
value.IdUser = User.GetUserId();
|
||||||
}
|
}
|
||||||
|
|
||||||
var result = await operationRepository.InsertRangeAsync(values, token)
|
var result = await operationRepository.InsertRangeAsync(values, token)
|
||||||
@ -239,6 +244,9 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
if (!await CanUserAccessToWellAsync(idWell, token).ConfigureAwait(false))
|
if (!await CanUserAccessToWellAsync(idWell, token).ConfigureAwait(false))
|
||||||
return Forbid();
|
return Forbid();
|
||||||
|
|
||||||
|
if (value.IdCategory < 5000)
|
||||||
|
throw new ArgumentInvalidException($"Выбрана некорректная категория скважины", nameof(value.IdCategory));
|
||||||
|
|
||||||
value.IdWell = idWell;
|
value.IdWell = idWell;
|
||||||
value.Id = idOperation;
|
value.Id = idOperation;
|
||||||
value.LastUpdateDate = DateTimeOffset.UtcNow;
|
value.LastUpdateDate = DateTimeOffset.UtcNow;
|
||||||
|
Loading…
Reference in New Issue
Block a user