2024-07-04 11:02:45 +05:00
|
|
|
using System.Collections.Generic;
|
2023-10-27 12:02:19 +05:00
|
|
|
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);
|
|
|
|
}
|
|
|
|
}
|