forked from ddrilling/AsbCloudServer
WellSectionsController
This commit is contained in:
parent
ae9eb45b41
commit
bc986e789a
@ -44,4 +44,5 @@ public class SectionByOperationsDto
|
||||
/// Дата после завершения последней операции операции в секции
|
||||
/// </summary>
|
||||
public DateTimeOffset DateEnd { get; set; }
|
||||
public string Caption { get; set; }
|
||||
}
|
||||
|
@ -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