forked from ddrilling/AsbCloudServer
Merge branch 'dev' into fix/#13108961-typing-signalr-clients-methods
This commit is contained in:
commit
89ede5b71e
@ -21,7 +21,7 @@ namespace AsbCloudApp.Data.SAUB
|
||||
/// <summary>
|
||||
/// id категории события
|
||||
/// </summary>
|
||||
[Range(1, int.MaxValue, ErrorMessage = "Id категории события не может быть отрицательным")]
|
||||
[Range(0, int.MaxValue, ErrorMessage = "Id категории события не может быть отрицательным")]
|
||||
public int IdCategory { get; set; }
|
||||
|
||||
/// <summary>
|
||||
@ -32,7 +32,7 @@ namespace AsbCloudApp.Data.SAUB
|
||||
/// <summary>
|
||||
/// тип определения наступления события
|
||||
/// </summary>
|
||||
[Range(1, int.MaxValue, ErrorMessage = "Id типа события не может быть отрицательным")]
|
||||
[Range(0, int.MaxValue, ErrorMessage = "Id типа события не может быть отрицательным")]
|
||||
public int EventType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
|
@ -44,4 +44,5 @@ public class SectionByOperationsDto
|
||||
/// Дата после завершения последней операции операции в секции
|
||||
/// </summary>
|
||||
public DateTimeOffset DateEnd { get; set; }
|
||||
public string Caption { get; set; }
|
||||
}
|
||||
|
@ -104,7 +104,7 @@ namespace AsbCloudDb.Model
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
{
|
||||
if (!optionsBuilder.IsConfigured)
|
||||
optionsBuilder.UseNpgsql("Host=localhost;Database=postgres;Username=postgres;Password=q;Persist Security Info=True"
|
||||
optionsBuilder.UseNpgsql("Host=localhost;Database=postgres;Username=postgres;Password=q;Persist Security Info=True;Include Error Detail=True;"
|
||||
//, builder=>builder.EnableRetryOnFailure(2, System.TimeSpan.FromMinutes(1))
|
||||
);
|
||||
}
|
||||
|
@ -128,12 +128,14 @@ public class WellOperationRepository : IWellOperationRepository
|
||||
operation.IdWell,
|
||||
operation.IdType,
|
||||
operation.IdWellSectionType,
|
||||
operation.WellSectionType.Caption,
|
||||
})
|
||||
.Select(group => new
|
||||
{
|
||||
group.Key.IdWell,
|
||||
group.Key.IdType,
|
||||
group.Key.IdWellSectionType,
|
||||
group.Key.Caption,
|
||||
|
||||
First = group
|
||||
.OrderBy(operation => operation.DateStart)
|
||||
@ -162,6 +164,8 @@ public class WellOperationRepository : IWellOperationRepository
|
||||
IdType = item.IdType,
|
||||
IdWellSectionType = item.IdWellSectionType,
|
||||
|
||||
Caption = item.Caption,
|
||||
|
||||
DateStart = item.First.DateStart,
|
||||
DepthStart = item.First.DepthStart,
|
||||
|
||||
|
59
AsbCloudWebApi/Controllers/WellSectionsController.cs
Normal file
59
AsbCloudWebApi/Controllers/WellSectionsController.cs
Normal file
@ -0,0 +1,59 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using AsbCloudApp.Data;
|
||||
using AsbCloudApp.Repositories;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace AsbCloudWebApi.Controllers;
|
||||
|
||||
/// <summary>
|
||||
/// Секции скважины
|
||||
/// </summary>
|
||||
[Authorize]
|
||||
[ApiController]
|
||||
[Route("api/[controller]")]
|
||||
public class WellSectionsController : ControllerBase
|
||||
{
|
||||
private readonly IWellOperationRepository wellOperationRepository;
|
||||
|
||||
public WellSectionsController(IWellOperationRepository wellOperationRepository)
|
||||
{
|
||||
this.wellOperationRepository = wellOperationRepository;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получение списка плановых секций скважин
|
||||
/// </summary>
|
||||
/// <param name="idsWells">Идентификаторы скважин</param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("plan")]
|
||||
[ProducesResponseType(typeof(IEnumerable<SectionByOperationsDto>), StatusCodes.Status200OK)]
|
||||
public async Task<IActionResult> GetPlanAsync([FromQuery] IEnumerable<int> idsWells,
|
||||
CancellationToken cancellationToken)
|
||||
{
|
||||
var sections = await wellOperationRepository.GetSectionsAsync(idsWells, cancellationToken);
|
||||
sections = sections.Where(section => section.IdType == 0);
|
||||
return Ok(sections);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получение списка фактических секций скважин
|
||||
/// </summary>
|
||||
/// <param name="idsWells">Идентификаторы скважин</param>
|
||||
/// <param name="cancellationToken"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("fact")]
|
||||
[ProducesResponseType(typeof(IEnumerable<SectionByOperationsDto>), StatusCodes.Status200OK)]
|
||||
public async Task<IActionResult> GetFactAsync([FromQuery] IEnumerable<int> idsWells,
|
||||
CancellationToken cancellationToken)
|
||||
{
|
||||
var sections = await wellOperationRepository.GetSectionsAsync(idsWells, cancellationToken);
|
||||
sections = sections.Where(section => section.IdType == 1);
|
||||
return Ok(sections);
|
||||
}
|
||||
}
|
@ -1,15 +1,11 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using AsbCloudApp.Data;
|
||||
using AsbCloudApp.Exceptions;
|
||||
using AsbCloudApp.Requests;
|
||||
using AsbCloudApp.Services;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Org.BouncyCastle.Asn1.Ocsp;
|
||||
|
||||
namespace AsbCloudWebApi.Controllers;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user