CS2-65: United GetSectionsData() and GetWholeWellData() methods

This commit is contained in:
KharchenkoVV 2021-08-20 16:56:21 +05:00
parent cec8e92d77
commit 791f72cbdb
6 changed files with 84 additions and 222 deletions

View File

@ -1,78 +0,0 @@
namespace AsbCloudApp.Data
{
public class WellOperationsDto : IId
{
public int Id { get; set; }
/// <summary>
/// Глубина план, м
/// </summary>
public double WellDepthPlan { get; set; }
/// <summary>
/// Глубина факт, м
/// </summary>
public double WellDepthFact { get; set; }
/// <summary>
/// Период план, д
/// </summary>
public double DurationPlan { get; set; }
/// <summary>
/// Период факт, д
/// </summary>
public double DurationFact { get; set; }
/// <summary>
/// Механическая скорость проходки план, м/час
/// </summary>
public double MechSpeedPlan { get; set; }
/// <summary>
/// Механическая скорость проходки факт, м/час
/// </summary>
public double MechSpeedFact { get; set; }
/// <summary>
/// Рейсовая скорость план, м/час
/// </summary>
public double RouteSpeedPlan { get; set; }
/// <summary>
/// Рейсовая скорость план, м/час
/// </summary>
public double RouteSpeedFact { get; set; }
/// <summary>
/// Скорость подъема КНБК план
/// </summary>
public double BhaUpSpeedPlan { get; set; }
/// <summary>
/// Скорость подъема КНБК факт
/// </summary>
public double BhaUpSpeedFact { get; set; }
/// <summary>
/// Скорость спуска КНБК план
/// </summary>
public double BhaDownSpeedPlan { get; set; }
/// <summary>
/// Скорость спуска КНБК факт
/// </summary>
public double BhaDownSpeedFact { get; set; }
/// <summary>
/// Скорость спуска обсадной колонны план
/// </summary>
public double CasingDownSpeedPlan { get; set; }
/// <summary>
/// Скорость спуска обсадной колонны факт
/// </summary>
public double CasingDownSpeedFact { get; set; }
}
}

View File

@ -1,4 +1,5 @@
using AsbCloudApp.Data;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
@ -6,10 +7,9 @@ namespace AsbCloudApp.Services
{
public interface IWellSectionService
{
Task<PaginationContainer<WellOperationsDto>> GetAggregatedWellByWellIdAsync(int idWell,
int skip, int take, CancellationToken token);
Task<PaginationContainer<WellSectionDto>> GetSectionsByWellIdAsync(int idWell, int skip = 0, int take = 32,
Task<IEnumerable<WellSectionDto>> GetSectionsByWellIdAsync(int idWell,
CancellationToken token = default);
Task<WellSectionDto> GetSectionByWellIdAsync(int id,
CancellationToken token = default);
Task<WellSectionDto> GetSectionByWellIdAsync(int id, CancellationToken token = default);
}
}

View File

@ -297,12 +297,13 @@ namespace AsbCloudDb.Model
modelBuilder.Entity<WellSectionType>(entity => {
entity.HasData(new List<WellSectionType>{
new WellSectionType{ Id = 1, Caption = "Пилотный ствол"},
new WellSectionType{ Id = 2, Caption = "Направление"},
new WellSectionType{ Id = 3, Caption = "Кондуктор"},
new WellSectionType{ Id = 4, Caption = "Эксплуатационная колонна"},
new WellSectionType{ Id = 5, Caption = "Транспортный ствол"},
new WellSectionType{ Id = 6, Caption = "Хвостовик"},
new WellSectionType{ Id = 1, Caption = "Обощенное по скважине"},
new WellSectionType{ Id = 2, Caption = "Пилотный ствол"},
new WellSectionType{ Id = 3, Caption = "Направление"},
new WellSectionType{ Id = 4, Caption = "Кондуктор"},
new WellSectionType{ Id = 5, Caption = "Эксплуатационная колонна"},
new WellSectionType{ Id = 6, Caption = "Транспортный ствол"},
new WellSectionType{ Id = 7, Caption = "Хвостовик"},
});
});
}
@ -392,208 +393,206 @@ namespace AsbCloudDb.Model
modelBuilder.Entity<WellOperation>(entity =>
{
entity.HasData(new List<WellOperation> {
new WellOperation{ Id = 1, IdWell = 1, IdWellSectionType = 1,
new WellOperation{ Id = 1, IdWell = 1, IdWellSectionType = 2,
IdCategory = 1001, IdType = 0,
WellDepth = 200, StartDate = DateTime.Now.AddHours(1),
DurationHours = 1.2},
new WellOperation{ Id = 2, IdWell = 1, IdWellSectionType = 1,
new WellOperation{ Id = 2, IdWell = 1, IdWellSectionType = 2,
IdCategory = 1001, IdType = 0,
WellDepth = 300, StartDate = DateTime.Now.AddHours(2.5),
DurationHours = 1.5},
new WellOperation{ Id = 3, IdWell = 1, IdWellSectionType = 1,
new WellOperation{ Id = 3, IdWell = 1, IdWellSectionType = 2,
IdCategory = 1001, IdType = 1,
WellDepth = 210, StartDate = DateTime.Now.AddHours(1.5),
DurationHours = 1},
new WellOperation{ Id = 4, IdWell = 1, IdWellSectionType = 1,
new WellOperation{ Id = 4, IdWell = 1, IdWellSectionType = 2,
IdCategory = 1001, IdType = 1,
WellDepth = 310, StartDate = DateTime.Now.AddHours(2),
DurationHours = 1.5},
new WellOperation{ Id = 5, IdWell = 1, IdWellSectionType = 2,
new WellOperation{ Id = 5, IdWell = 1, IdWellSectionType = 3,
IdCategory = 1001, IdType = 0,
WellDepth = 200, StartDate = DateTime.Now.AddHours(1),
DurationHours = 1.2},
new WellOperation{ Id = 6, IdWell = 1, IdWellSectionType = 2,
new WellOperation{ Id = 6, IdWell = 1, IdWellSectionType = 3,
IdCategory = 1001, IdType = 0,
WellDepth = 300, StartDate = DateTime.Now.AddHours(2.5),
DurationHours = 1.5},
new WellOperation{ Id = 7, IdWell = 1, IdWellSectionType = 2,
new WellOperation{ Id = 7, IdWell = 1, IdWellSectionType = 3,
IdCategory = 1001, IdType = 1,
WellDepth = 210, StartDate = DateTime.Now.AddHours(1.5),
DurationHours = 1},
new WellOperation{ Id = 8, IdWell = 1, IdWellSectionType = 2,
new WellOperation{ Id = 8, IdWell = 1, IdWellSectionType = 3,
IdCategory = 1001, IdType = 1,
WellDepth = 310, StartDate = DateTime.Now.AddHours(2),
DurationHours = 1.5},
new WellOperation{ Id = 9, IdWell = 1, IdWellSectionType = 3,
new WellOperation{ Id = 9, IdWell = 1, IdWellSectionType = 4,
IdCategory = 1001, IdType = 0,
WellDepth = 500, StartDate = DateTime.Now.AddHours(1),
DurationHours = 1.2},
new WellOperation{ Id = 10, IdWell = 1, IdWellSectionType = 3,
new WellOperation{ Id = 10, IdWell = 1, IdWellSectionType = 4,
IdCategory = 1001, IdType = 0,
WellDepth = 510, StartDate = DateTime.Now.AddHours(2),
DurationHours = 1.2},
new WellOperation{ Id = 11, IdWell = 1, IdWellSectionType = 3,
new WellOperation{ Id = 11, IdWell = 1, IdWellSectionType = 4,
IdCategory = 1001, IdType = 1,
WellDepth = 510, StartDate = DateTime.Now.AddHours(1.5),
DurationHours = 1},
new WellOperation{ Id = 12, IdWell = 1, IdWellSectionType = 3,
new WellOperation{ Id = 12, IdWell = 1, IdWellSectionType = 4,
IdCategory = 1001, IdType = 1,
WellDepth = 520, StartDate = DateTime.Now.AddHours(2),
DurationHours = 1.5},
new WellOperation{ Id = 13, IdWell = 1, IdWellSectionType = 1,
new WellOperation{ Id = 13, IdWell = 1, IdWellSectionType = 2,
IdCategory = 1046, IdType = 0,
WellDepth = 200, StartDate = DateTime.Now.AddHours(2.5),
DurationHours = 15.5},
new WellOperation{ Id = 14, IdWell = 1, IdWellSectionType = 1,
new WellOperation{ Id = 14, IdWell = 1, IdWellSectionType = 2,
IdCategory = 1046, IdType = 0,
WellDepth = 210, StartDate = DateTime.Now.AddHours(3),
DurationHours = 17.2},
new WellOperation{ Id = 15, IdWell = 1, IdWellSectionType = 1,
new WellOperation{ Id = 15, IdWell = 1, IdWellSectionType = 2,
IdCategory = 1046, IdType = 1,
WellDepth = 220, StartDate = DateTime.Now.AddHours(2.7),
DurationHours = 15.2},
new WellOperation{ Id = 16, IdWell = 1, IdWellSectionType = 1,
new WellOperation{ Id = 16, IdWell = 1, IdWellSectionType = 2,
IdCategory = 1046, IdType = 1,
WellDepth = 230, StartDate = DateTime.Now.AddHours(3.1),
DurationHours = 17.8},
new WellOperation{ Id = 17, IdWell = 1, IdWellSectionType = 2,
new WellOperation{ Id = 17, IdWell = 1, IdWellSectionType = 3,
IdCategory = 1046, IdType = 0,
WellDepth = 200, StartDate = DateTime.Now.AddHours(2.5),
DurationHours = 15.5},
new WellOperation{ Id = 18, IdWell = 1, IdWellSectionType = 2,
new WellOperation{ Id = 18, IdWell = 1, IdWellSectionType = 3,
IdCategory = 1046, IdType = 0,
WellDepth = 210, StartDate = DateTime.Now.AddHours(3),
DurationHours = 17.2},
new WellOperation{ Id = 19, IdWell = 1, IdWellSectionType = 2,
new WellOperation{ Id = 19, IdWell = 1, IdWellSectionType = 3,
IdCategory = 1046, IdType = 1,
WellDepth = 220, StartDate = DateTime.Now.AddHours(2.7),
DurationHours = 15.2},
new WellOperation{ Id = 20, IdWell = 1, IdWellSectionType = 2,
new WellOperation{ Id = 20, IdWell = 1, IdWellSectionType = 3,
IdCategory = 1046, IdType = 1,
WellDepth = 230, StartDate = DateTime.Now.AddHours(3.1),
DurationHours = 17.8},
new WellOperation{ Id = 21, IdWell = 1, IdWellSectionType = 3,
new WellOperation{ Id = 21, IdWell = 1, IdWellSectionType = 4,
IdCategory = 1046, IdType = 0,
WellDepth = 700, StartDate = DateTime.Now.AddHours(2.5),
DurationHours = 16.2},
new WellOperation{ Id = 22, IdWell = 1, IdWellSectionType = 3,
new WellOperation{ Id = 22, IdWell = 1, IdWellSectionType = 4,
IdCategory = 1046, IdType = 0,
WellDepth = 720, StartDate = DateTime.Now.AddHours(3.5),
DurationHours = 17.2},
new WellOperation{ Id = 23, IdWell = 1, IdWellSectionType = 3,
new WellOperation{ Id = 23, IdWell = 1, IdWellSectionType = 4,
IdCategory = 1046, IdType = 1,
WellDepth = 715, StartDate = DateTime.Now.AddHours(2.7),
DurationHours = 15.2},
new WellOperation{ Id = 24, IdWell = 1, IdWellSectionType = 3,
new WellOperation{ Id = 24, IdWell = 1, IdWellSectionType = 4,
IdCategory = 1046, IdType = 1,
WellDepth = 720, StartDate = DateTime.Now.AddHours(3),
DurationHours = 18.2},
new WellOperation{ Id = 25, IdWell = 1, IdWellSectionType = 1,
new WellOperation{ Id = 25, IdWell = 1, IdWellSectionType = 2,
IdCategory = 1047, IdType = 0,
WellDepth = 600, StartDate = DateTime.Now.AddHours(4),
DurationHours = 5},
new WellOperation{ Id = 26, IdWell = 1, IdWellSectionType = 1,
new WellOperation{ Id = 26, IdWell = 1, IdWellSectionType = 2,
IdCategory = 1047, IdType = 0,
WellDepth = 650, StartDate = DateTime.Now.AddHours(4.5),
DurationHours = 5.5},
new WellOperation{ Id = 27, IdWell = 1, IdWellSectionType = 1,
new WellOperation{ Id = 27, IdWell = 1, IdWellSectionType = 2,
IdCategory = 1047, IdType = 1,
WellDepth = 700, StartDate = DateTime.Now.AddHours(5.5),
DurationHours = 8},
new WellOperation{ Id = 28, IdWell = 1, IdWellSectionType = 1,
new WellOperation{ Id = 28, IdWell = 1, IdWellSectionType = 2,
IdCategory = 1047, IdType = 1,
WellDepth = 710, StartDate = DateTime.Now.AddHours(5.7),
DurationHours = 7.2},
new WellOperation{ Id = 29, IdWell = 1, IdWellSectionType = 2,
new WellOperation{ Id = 29, IdWell = 1, IdWellSectionType = 3,
IdCategory = 1047, IdType = 0,
WellDepth = 600, StartDate = DateTime.Now.AddHours(4),
DurationHours = 5},
new WellOperation{ Id = 30, IdWell = 1, IdWellSectionType = 2,
new WellOperation{ Id = 30, IdWell = 1, IdWellSectionType = 3,
IdCategory = 1047, IdType = 0,
WellDepth = 650, StartDate = DateTime.Now.AddHours(4.5),
DurationHours = 5.5},
new WellOperation{ Id = 31, IdWell = 1, IdWellSectionType = 2,
new WellOperation{ Id = 31, IdWell = 1, IdWellSectionType = 3,
IdCategory = 1047, IdType = 1,
WellDepth = 700, StartDate = DateTime.Now.AddHours(5.5),
DurationHours = 8},
new WellOperation{ Id = 32, IdWell = 1, IdWellSectionType = 2,
new WellOperation{ Id = 32, IdWell = 1, IdWellSectionType = 3,
IdCategory = 1047, IdType = 1,
WellDepth = 710, StartDate = DateTime.Now.AddHours(5.7),
DurationHours = 7.2},
new WellOperation{ Id = 33, IdWell = 1, IdWellSectionType = 3,
new WellOperation{ Id = 33, IdWell = 1, IdWellSectionType = 4,
IdCategory = 1047, IdType = 0,
WellDepth = 1000, StartDate = DateTime.Now.AddHours(5.25),
DurationHours = 2.1},
new WellOperation{ Id = 34, IdWell = 1, IdWellSectionType = 3,
new WellOperation{ Id = 34, IdWell = 1, IdWellSectionType = 4,
IdCategory = 1047, IdType = 0,
WellDepth = 1100, StartDate = DateTime.Now.AddHours(7.5),
DurationHours = 2},
new WellOperation{ Id = 35, IdWell = 1, IdWellSectionType = 3,
new WellOperation{ Id = 35, IdWell = 1, IdWellSectionType = 4,
IdCategory = 1047, IdType = 1,
WellDepth = 1000, StartDate = DateTime.Now.AddHours(5.15),
DurationHours = 2.75},
new WellOperation{ Id = 36, IdWell = 1, IdWellSectionType = 3,
new WellOperation{ Id = 36, IdWell = 1, IdWellSectionType = 4,
IdCategory = 1047, IdType = 1,
WellDepth = 1250, StartDate = DateTime.Now.AddHours(6.5),
DurationHours = 3.5},
new WellOperation{ Id = 37, IdWell = 1, IdWellSectionType = 1,
new WellOperation{ Id = 37, IdWell = 1, IdWellSectionType = 2,
IdCategory = 1048, IdType = 0,
WellDepth = 600, StartDate = DateTime.Now.AddHours(4),
DurationHours = 5},
new WellOperation{ Id = 38, IdWell = 1, IdWellSectionType = 1,
new WellOperation{ Id = 38, IdWell = 1, IdWellSectionType = 2,
IdCategory = 1048, IdType = 0,
WellDepth = 650, StartDate = DateTime.Now.AddHours(4.2),
DurationHours = 5.5},
new WellOperation{ Id = 39, IdWell = 1, IdWellSectionType = 1,
new WellOperation{ Id = 39, IdWell = 1, IdWellSectionType = 2,
IdCategory = 1048, IdType = 1,
WellDepth = 700, StartDate = DateTime.Now.AddHours(5.5),
DurationHours = 7},
new WellOperation{ Id = 40, IdWell = 1, IdWellSectionType = 1,
new WellOperation{ Id = 40, IdWell = 1, IdWellSectionType = 2,
IdCategory = 1048, IdType = 1,
WellDepth = 710, StartDate = DateTime.Now.AddHours(5.7),
DurationHours = 7.5},
new WellOperation{ Id = 41, IdWell = 1, IdWellSectionType = 2,
new WellOperation{ Id = 41, IdWell = 1, IdWellSectionType = 3,
IdCategory = 1048, IdType = 0,
WellDepth = 600, StartDate = DateTime.Now.AddHours(4),
DurationHours = 5},
new WellOperation{ Id = 42, IdWell = 1, IdWellSectionType = 2,
new WellOperation{ Id = 42, IdWell = 1, IdWellSectionType = 3,
IdCategory = 1048, IdType = 0,
WellDepth = 650, StartDate = DateTime.Now.AddHours(4.2),
DurationHours = 5.5},
new WellOperation{ Id = 43, IdWell = 1, IdWellSectionType = 2,
new WellOperation{ Id = 43, IdWell = 1, IdWellSectionType = 3,
IdCategory = 1048, IdType = 1,
WellDepth = 700, StartDate = DateTime.Now.AddHours(5.5),
DurationHours = 7},
new WellOperation{ Id = 44, IdWell = 1, IdWellSectionType = 2,
new WellOperation{ Id = 44, IdWell = 1, IdWellSectionType = 3,
IdCategory = 1048, IdType = 1,
WellDepth = 710, StartDate = DateTime.Now.AddHours(5.7),
DurationHours = 7.5},
new WellOperation{ Id = 48, IdWell = 1, IdWellSectionType = 2,
new WellOperation{ Id = 48, IdWell = 1, IdWellSectionType = 3,
IdCategory = 1048, IdType = 0,
WellDepth = 910, StartDate = DateTime.Now.AddHours(5),
DurationHours = 12},
new WellOperation{ Id = 49, IdWell = 1, IdWellSectionType = 3,
new WellOperation{ Id = 49, IdWell = 1, IdWellSectionType = 4,
IdCategory = 1048, IdType = 0,
WellDepth = 910, StartDate = DateTime.Now.AddHours(5),
DurationHours = 2},
new WellOperation{ Id = 50, IdWell = 1, IdWellSectionType = 3,
new WellOperation{ Id = 50, IdWell = 1, IdWellSectionType = 4,
IdCategory = 1048, IdType = 0,
WellDepth = 950, StartDate = DateTime.Now.AddHours(7.5),
DurationHours = 2},
new WellOperation{ Id = 51, IdWell = 1, IdWellSectionType = 3,
new WellOperation{ Id = 51, IdWell = 1, IdWellSectionType = 4,
IdCategory = 1048, IdType = 1,
WellDepth = 980, StartDate = DateTime.Now.AddHours(5),
DurationHours = 2.5},
new WellOperation{ Id = 52, IdWell = 1, IdWellSectionType = 3,
new WellOperation{ Id = 52, IdWell = 1, IdWellSectionType = 4,
IdCategory = 1048, IdType = 1,
WellDepth = 1010, StartDate = DateTime.Now.AddHours(6.5),
DurationHours = 2.5},

View File

@ -9,6 +9,9 @@ namespace AsbCloudDb.Model
[Table("t_well_operation"), Comment("Данные по операциям на скважине")]
public class WellOperation
{
public WellOperation ShallowCopy() =>
(WellOperation) MemberwiseClone();
[Key]
[Column("id")]
public int Id { get; set; }

View File

@ -23,63 +23,8 @@ namespace AsbCloudInfrastructure.Services
cachedSectionsTypes = cache.GetCachedTable<WellSectionType>((DbContext)db);
}
public async Task<PaginationContainer<WellOperationsDto>> GetAggregatedWellByWellIdAsync(int idWell,
int skip, int take, CancellationToken token)
{
var wellOperations = await (from w in db.WellOperations
where w.IdWell == idWell
select w)
.ToListAsync(token)
.ConfigureAwait(false);
var wellOperationsGroupedByIdWell = wellOperations
.GroupBy(op => op.IdWell).ToList();
var result = PaginateData<WellOperationsDto, WellOperation>(wellOperationsGroupedByIdWell,
skip, take);
if (!wellOperationsGroupedByIdWell.Any())
return result;
var depthsPlanFactList = GetWellDepthPlanFact(wellOperationsGroupedByIdWell).ToList();
var durationsPlanFactList = GetWellDurationPlanFact(wellOperationsGroupedByIdWell).ToList();
var mechSpeedsList = GetWellMechSpeedPlanFact(wellOperationsGroupedByIdWell).ToList();
var bhaUpSpeedList = GetWellBhaUpSpeedPlanFact(wellOperationsGroupedByIdWell).ToList();
var bhaDownSpeedList = GetWellBhaDownSpeedPlanFact(wellOperationsGroupedByIdWell).ToList();
var casingDownList = GetWellCasingDownPlanFact(wellOperationsGroupedByIdWell).ToList();
var routeSpeeds = GetWellRouteSpeedsPlanFact(wellOperationsGroupedByIdWell).ToList();
var dto = new WellOperationsDto
{
WellDepthPlan = depthsPlanFactList[0].DepthPlan,
WellDepthFact = depthsPlanFactList[0].DepthFact,
DurationPlan = durationsPlanFactList[0].DurationPlan,
DurationFact = durationsPlanFactList[0].DurationFact,
MechSpeedPlan = mechSpeedsList[0].MechSpeedPlan,
MechSpeedFact = mechSpeedsList[0].MechSpeedFact,
BhaUpSpeedPlan = bhaUpSpeedList[0].BhaUpSpeedPlan,
BhaUpSpeedFact = bhaUpSpeedList[0].BhaUpSpeedFact,
BhaDownSpeedPlan = bhaDownSpeedList[0].BhaDownSpeedPlan,
BhaDownSpeedFact = bhaDownSpeedList[0].BhaDownSpeedFact,
CasingDownSpeedPlan = casingDownList[0].CasingDownSpeedPlan,
CasingDownSpeedFact = casingDownList[0].CasingDownSpeedFact,
RouteSpeedPlan = routeSpeeds[0].RouteSpeedPlan,
RouteSpeedFact = routeSpeeds[0].RouteSpeedFact
};
result.Items.Add(dto);
return result;
}
public async Task<PaginationContainer<WellSectionDto>> GetSectionsByWellIdAsync(int idWell,
int skip, int take, CancellationToken token = default)
public async Task<IEnumerable<WellSectionDto>> GetSectionsByWellIdAsync(int idWell,
CancellationToken token = default)
{
var wellOperations = await (from w in db.WellOperations
where w.IdWell == idWell
@ -88,14 +33,23 @@ namespace AsbCloudInfrastructure.Services
.ToListAsync(token)
.ConfigureAwait(false);
if (!wellOperations.Any())
return null;
var wellOperationsGroupedBySections = wellOperations
.GroupBy(op => op.IdWellSectionType).ToList();
var result = PaginateData<WellSectionDto, WellOperation>(wellOperationsGroupedBySections,
skip, take);
var wellOperationsClone = wellOperations.Select(o => o.ShallowCopy()).ToList();
if (!wellOperationsGroupedBySections.Any())
return result;
wellOperationsClone.ForEach(op =>
{
op.IdWellSectionType = 1;
op.WellSectionType = new WellSectionType { Caption = "Обобщенное по скважине" };
});
var groupedWellOperationsClone = wellOperationsClone.GroupBy(o => o.IdWell);
wellOperationsGroupedBySections.Add(groupedWellOperationsClone.First());
var depthsPlanFactList = GetWellDepthPlanFact(wellOperationsGroupedBySections).ToList();
@ -138,9 +92,7 @@ namespace AsbCloudInfrastructure.Services
dtos.Add(dto);
}
result.Items = dtos;
return result;
return dtos;
}
public async Task<WellSectionDto> GetSectionByWellIdAsync(int id, CancellationToken token = default)

View File

@ -1,4 +1,5 @@
using AsbCloudApp.Data;
using System.Collections.Generic;
using AsbCloudApp.Data;
using AsbCloudApp.Services;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
@ -25,29 +26,14 @@ namespace AsbCloudWebApi.Controllers
}
[HttpGet]
[Route("aggregated")]
[ProducesResponseType(typeof(PaginationContainer<WellOperationsDto>), (int)System.Net.HttpStatusCode.OK)]
public async Task<IActionResult> GetAggregatedWellByWellIdAsync(int idWell, int skip = 0, int take = 32,
CancellationToken token = default)
{
if (!await CanUserAccessToWellAsync(idWell, token).ConfigureAwait(false))
return Forbid();
var result = await sectionsService.GetAggregatedWellByWellIdAsync(idWell, skip, take, token)
.ConfigureAwait(false);
return Ok(result);
}
[HttpGet]
[Route("divided")]
[ProducesResponseType(typeof(PaginationContainer<WellSectionDto>), (int)System.Net.HttpStatusCode.OK)]
public async Task<IActionResult> GetSectionsByWellIdAsync(int idWell, int skip = 0, int take = 32,
[ProducesResponseType(typeof(IEnumerable<WellSectionDto>), (int)System.Net.HttpStatusCode.OK)]
public async Task<IActionResult> GetSectionsByWellIdAsync(int idWell,
CancellationToken token = default)
{
if(!await CanUserAccessToWellAsync(idWell, token).ConfigureAwait(false))
return Forbid();
var result = await sectionsService.GetSectionsByWellIdAsync(idWell, skip, take, token)
var result = await sectionsService.GetSectionsByWellIdAsync(idWell, token)
.ConfigureAwait(false);
return Ok(result);
}