forked from ddrilling/AsbCloudServer
SubsystemOperationTimeController изменен валидатор. null - валидное значение для nullable свойств запроса. SubsystemOperationTimeService.BuildQuery изменен по тем же причинам.
This commit is contained in:
parent
a457da8ead
commit
e8789df59e
@ -187,9 +187,6 @@ namespace AsbCloudInfrastructure.Services.Subsystems
|
|||||||
|
|
||||||
private IQueryable<SubsystemOperationTime>? BuildQuery(SubsystemOperationTimeRequest request)
|
private IQueryable<SubsystemOperationTime>? BuildQuery(SubsystemOperationTimeRequest request)
|
||||||
{
|
{
|
||||||
if (request.SelectMode > 0 && request.GtDate is null && request.LtDate is null)
|
|
||||||
return null;
|
|
||||||
|
|
||||||
var well = wellService.GetOrDefault(request.IdWell);
|
var well = wellService.GetOrDefault(request.IdWell);
|
||||||
if (well?.IdTelemetry is null || well.Timezone is null)
|
if (well?.IdTelemetry is null || well.Timezone is null)
|
||||||
return null;
|
return null;
|
||||||
|
@ -39,7 +39,7 @@ namespace AsbCloudWebApi.Controllers.Subsystems
|
|||||||
{
|
{
|
||||||
if (!await UserHasAccesToWellAsync(request.IdWell, token))
|
if (!await UserHasAccesToWellAsync(request.IdWell, token))
|
||||||
return Forbid();
|
return Forbid();
|
||||||
if (!await TimeRequestValidate(request, token))
|
if (!await IsValidRequest(request, token))
|
||||||
return BadRequest("Запрашиваемый диапазон должен заканчиваться за 2 часа до текущего времени(после приведения к UTC).");
|
return BadRequest("Запрашиваемый диапазон должен заканчиваться за 2 часа до текущего времени(после приведения к UTC).");
|
||||||
var subsystemResult = await subsystemOperationTimeService.GetStatAsync(request, token);
|
var subsystemResult = await subsystemOperationTimeService.GetStatAsync(request, token);
|
||||||
return Ok(subsystemResult);
|
return Ok(subsystemResult);
|
||||||
@ -71,7 +71,7 @@ namespace AsbCloudWebApi.Controllers.Subsystems
|
|||||||
{
|
{
|
||||||
if (!await UserHasAccesToWellAsync(request.IdWell, token))
|
if (!await UserHasAccesToWellAsync(request.IdWell, token))
|
||||||
return Forbid();
|
return Forbid();
|
||||||
if (!await TimeRequestValidate(request, token))
|
if (!await IsValidRequest(request, token))
|
||||||
return BadRequest("Запрашиваемый диапазон должен заканчиваться за 2 часа до текущего времени(после приведения к UTC).");
|
return BadRequest("Запрашиваемый диапазон должен заканчиваться за 2 часа до текущего времени(после приведения к UTC).");
|
||||||
|
|
||||||
var result = await subsystemOperationTimeService.GetOperationTimeAsync(request, token);
|
var result = await subsystemOperationTimeService.GetOperationTimeAsync(request, token);
|
||||||
@ -93,7 +93,7 @@ namespace AsbCloudWebApi.Controllers.Subsystems
|
|||||||
{
|
{
|
||||||
if (!await UserHasAccesToWellAsync(request.IdWell, token))
|
if (!await UserHasAccesToWellAsync(request.IdWell, token))
|
||||||
return Forbid();
|
return Forbid();
|
||||||
if (!await TimeRequestValidate(request, token))
|
if (!await IsValidRequest(request, token))
|
||||||
return BadRequest("Запрашиваемый диапазон должен заканчиваться за 2 часа до текущего времени(после приведения к UTC).");
|
return BadRequest("Запрашиваемый диапазон должен заканчиваться за 2 часа до текущего времени(после приведения к UTC).");
|
||||||
var result = await subsystemOperationTimeService.DeleteAsync(request, token);
|
var result = await subsystemOperationTimeService.DeleteAsync(request, token);
|
||||||
return Ok(result);
|
return Ok(result);
|
||||||
@ -108,20 +108,20 @@ namespace AsbCloudWebApi.Controllers.Subsystems
|
|||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
protected async Task<bool> TimeRequestValidate(SubsystemOperationTimeRequest request, CancellationToken token)
|
protected async Task<bool> IsValidRequest(SubsystemOperationTimeRequest request, CancellationToken token)
|
||||||
{
|
{
|
||||||
var well = await wellService.GetOrDefaultAsync(request.IdWell, token);
|
var well = await wellService.GetOrDefaultAsync(request.IdWell, token);
|
||||||
if (well is not null)
|
if (well is not null && request.LtDate.HasValue)
|
||||||
{
|
{
|
||||||
var ltDate = (DateTimeOffset)request.LtDate;
|
var ltDate = (DateTimeOffset)request.LtDate;
|
||||||
var utcDateRequest = ltDate.ToRemoteDateTime(well.Timezone.Hours);
|
var utcDateRequest = ltDate.ToRemoteDateTime(well.Timezone.Hours);
|
||||||
|
|
||||||
if (utcDateRequest.AddHours(2) < DateTime.UtcNow)
|
if (utcDateRequest.AddHours(2) > DateTime.UtcNow)
|
||||||
{
|
{
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user