diff --git a/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs b/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs
index 33cc19a5..13af0e6e 100644
--- a/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs
+++ b/AsbCloudApp/Data/DetectedOperation/DetectedOperationDto.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
-using System.Text.Json.Serialization;
using AsbCloudApp.Data.WellOperation;
namespace AsbCloudApp.Data.DetectedOperation;
@@ -9,84 +8,84 @@ namespace AsbCloudApp.Data.DetectedOperation;
///
/// Автоматически определенная операция
///
-public class DetectedOperationDto: IId
+public class DetectedOperationDto : IId
{
- ///
- [Required]
- public int Id { get; set; }
+ ///
+ [Required]
+ public int Id { get; set; }
- ///
- /// Id телеметрии
- ///
- [Required]
- public int IdTelemetry { get; set; }
+ ///
+ /// Id телеметрии
+ ///
+ [Required]
+ public int IdTelemetry { get; set; }
- ///
- /// Id названия/описания операции
- ///
- [Required]
- public int IdCategory { get; set; }
+ ///
+ /// Id названия/описания операции
+ ///
+ [Required]
+ public int IdCategory { get; set; }
- ///
- /// Id пользователя панели на момент начала операции
- ///
- public int? IdUserAtStart { get; set; }
-
- ///
- /// Пользователь панели оператора
- ///
- public string? TelemetryUserName { get; set; }
+ ///
+ /// Id пользователя панели на момент начала операции
+ ///
+ public int? IdUserAtStart { get; set; }
+
+ ///
+ /// Id пользователя изменившего операцию
+ ///
+ public int? IdEditor { get; set; }
- ///
- /// Дата завершения операции в часовом поясе скважины
- ///
- [Required]
- public DateTimeOffset DateEnd { get; set; }
+ ///
+ /// Дата завершения операции в часовом поясе скважины
+ ///
+ [Required]
+ public DateTimeOffset DateEnd { get; set; }
- ///
- /// Дата начала операции в часовом поясе скважины
- ///
- [Required]
- public DateTimeOffset DateStart { get; set; }
+ ///
+ /// Дата начала операции в часовом поясе скважины
+ ///
+ [Required]
+ public DateTimeOffset DateStart { get; set; }
- ///
- /// глубина на завершения операции, м
- ///
- [Required]
- public double DepthEnd { get; set; }
+ ///
+ /// глубина на завершения операции, м
+ ///
+ [Required]
+ public double DepthEnd { get; set; }
- ///
- /// глубина на начало операции, м
- ///
- [Required]
- public double DepthStart { get; set; }
+ ///
+ /// глубина на начало операции, м
+ ///
+ [Required]
+ public double DepthStart { get; set; }
- ///
- /// Продолжительность операции в минутах
- ///
- [Required]
- public double DurationMinutes => (DateEnd - DateStart).TotalMinutes;
+ ///
+ /// Продолжительность операции в минутах
+ ///
+ [Required]
+ public double DurationMinutes => (DateEnd - DateStart).TotalMinutes;
+
+ ///
+ /// название/описание операции
+ ///
+ [Required]
+ public WellOperationCategoryDto OperationCategory { get; set; } = null!;
+
+ ///
+ /// Включенные подсистемы
+ ///
+ [Required]
+ public EnabledSubsystems EnabledSubsystems { get; set; }
- ///
- /// Флаг включенной подсистемы
- ///
- [Required]
- public int EnabledSubsystems { get; set; }
+ ///
+ /// Значение ключевой параметра операции
+ ///
+ [Required]
+ public double Value { get; set; }
- ///
- /// название/описание операции
- ///
- [JsonIgnore]
- public WellOperationCategoryDto? OperationCategory { get; set; }
-
- ///
- /// Ключевой параметр операции
- ///
- [Required]
- public double Value { get; set; }
-
- ///
- /// Доп. инфо по операции
- ///
- public IDictionary ExtraData { get; set; } = new Dictionary();
+ ///
+ /// Доп. инфо по операции
+ ///
+ public IDictionary ExtraData { get; set; } = new Dictionary();
}
\ No newline at end of file
diff --git a/AsbCloudApp/Data/DetectedOperation/EnabledSubsystems.cs b/AsbCloudApp/Data/DetectedOperation/EnabledSubsystems.cs
new file mode 100644
index 00000000..1183c2b8
--- /dev/null
+++ b/AsbCloudApp/Data/DetectedOperation/EnabledSubsystems.cs
@@ -0,0 +1,102 @@
+namespace AsbCloudApp.Data.DetectedOperation;
+
+///
+/// Включённые подсистемы
+///
+public struct EnabledSubsystems
+{
+ private int value;
+
+ private EnabledSubsystems(int value)
+ {
+ this.value = value;
+ }
+
+ ///
+ public static implicit operator int(EnabledSubsystems param) =>
+ param.value;
+
+ ///
+ public static implicit operator EnabledSubsystems(int param) =>
+ new(param);
+
+ ///
+ /// Бурение ротором
+ ///
+ public bool IsAutoRotor
+ {
+ get => (value & (int)EnabledSubsystemsFlags.AutoRotor) > 0;
+ set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoRotor);
+ }
+
+ ///
+ /// Бурение слайдом
+ ///
+ public bool IsAutoSlide
+ {
+ get => (value & (int)EnabledSubsystemsFlags.AutoSlide) > 0;
+ set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoSlide);
+ }
+
+ ///
+ /// ПРОРАБОТКА
+ ///
+ public bool IsAutoConditionig
+ {
+ get => (value & (int)EnabledSubsystemsFlags.AutoConditionig) > 0;
+ set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoConditionig);
+ }
+
+ ///
+ /// СПУСК СПО
+ ///
+ public bool IsAutoSinking
+ {
+ get => (value & (int)EnabledSubsystemsFlags.AutoSinking) > 0;
+ set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoSinking);
+ }
+
+ ///
+ /// ПОДЪЕМ СПО
+ ///
+ public bool IsAutoLifting
+ {
+ get => (value & (int)EnabledSubsystemsFlags.AutoLifting) > 0;
+ set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoLifting);
+ }
+
+ ///
+ /// ПОДЪЕМ С ПРОРАБОТКОЙ
+ ///
+ public bool IsAutoLiftingWithConditionig
+ {
+ get => (value & (int)EnabledSubsystemsFlags.AutoLiftingWithConditionig) > 0;
+ set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoLiftingWithConditionig);
+ }
+
+ ///
+ /// Блокировка
+ ///
+ public bool IsAutoBlocknig
+ {
+ get => (value & (int)EnabledSubsystemsFlags.AutoBlocknig) > 0;
+ set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoBlocknig);
+ }
+
+ ///
+ /// Осцилляция
+ ///
+ public bool IsAutoOscillation
+ {
+ get => (value & (int)EnabledSubsystemsFlags.AutoOscillation) > 0;
+ set => UpdateEnabledSubsystems(value, EnabledSubsystemsFlags.AutoOscillation);
+ }
+
+ private void UpdateEnabledSubsystems(bool isEnable, EnabledSubsystemsFlags flag)
+ {
+ if (isEnable)
+ value |= (int)flag;
+ else
+ value &= ~(int)flag;
+ }
+}
\ No newline at end of file
diff --git a/AsbCloudApp/Repositories/IDetectedOperationRepository.cs b/AsbCloudApp/Repositories/IDetectedOperationRepository.cs
index 3c9d335b..a748984d 100644
--- a/AsbCloudApp/Repositories/IDetectedOperationRepository.cs
+++ b/AsbCloudApp/Repositories/IDetectedOperationRepository.cs
@@ -4,7 +4,8 @@ using AsbCloudApp.Requests;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Threading;
-using AsbCloudApp.Services;
+using AsbCloudApp.Data;
+using AsbCloudApp.Data.WellOperation;
namespace AsbCloudApp.Repositories;
@@ -14,14 +15,29 @@ namespace AsbCloudApp.Repositories;
public interface IDetectedOperationRepository
{
///
- /// Добавление записей
+ /// Добавление нескольких записей
+ ///
+ ///
+ ///
+ /// количество добавленных
+ Task InsertRangeAsync(IEnumerable dtos, CancellationToken token);
+
+ ///
+ /// Обновить несколько записей
///
- ///
///
///
///
- Task InsertRange(int? idEditor, IEnumerable dtos, CancellationToken token);
+ Task UpdateRangeAsync(IEnumerable dtos, CancellationToken token);
+ ///
+ /// Удаление нескольких записей
+ ///
+ ///
+ ///
+ ///
+ Task DeleteRangeAsync(IEnumerable ids, CancellationToken token);
+
///
/// Получить автоматически определенные операции по телеметрии
///
@@ -31,29 +47,12 @@ public interface IDetectedOperationRepository
Task> Get(DetectedOperationByTelemetryRequest request, CancellationToken token);
///
- /// Редактирование записей
- ///
- ///
- ///
- ///
- ///
- Task UpdateRange(int idEditor, IEnumerable dtos, CancellationToken token);
-
- ///
- /// Удалить операции
+ /// Получить страницу списка операций
///
///
///
///
- Task Delete(DetectedOperationByTelemetryRequest request, CancellationToken token);
-
- ///
- /// Удаление записей
- ///
- ///
- ///
- ///
- Task DeleteRange(IEnumerable ids, CancellationToken token);
+ Task> GetPageAsync(DetectedOperationByTelemetryRequest request, CancellationToken token);
///
/// Получение дат последних определённых операций
@@ -61,4 +60,12 @@ public interface IDetectedOperationRepository
///
///
Task> GetLastDetectedDatesAsync(CancellationToken token);
+
+ ///
+ /// Удалить операции
+ ///
+ ///
+ ///
+ ///
+ Task DeleteAsync(DetectedOperationByTelemetryRequest request, CancellationToken token);
}
diff --git a/AsbCloudApp/Services/IDetectedOperationService.cs b/AsbCloudApp/Services/IDetectedOperationService.cs
index 208706f7..9ab9189e 100644
--- a/AsbCloudApp/Services/IDetectedOperationService.cs
+++ b/AsbCloudApp/Services/IDetectedOperationService.cs
@@ -13,6 +13,26 @@ namespace AsbCloudApp.Services
///
public interface IDetectedOperationService
{
+ ///
+ /// Добавление операций
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task InsertRangeManualAsync(int idEditor, int idWell, IEnumerable dtos, CancellationToken token);
+
+ ///
+ /// Редактирование операций
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task UpdateRangeManualAsync(int idEditor, int idWell, IEnumerable dtos, CancellationToken token);
+
///
/// Список названий операций.
/// Если указан idWell, то возвращается список названий операций найденных на указанной скважине.
diff --git a/AsbCloudInfrastructure/Background/PeriodicWorks/WorkDataSaubStat.cs b/AsbCloudInfrastructure/Background/PeriodicWorks/WorkDataSaubStat.cs
index 074c26ca..35979165 100644
--- a/AsbCloudInfrastructure/Background/PeriodicWorks/WorkDataSaubStat.cs
+++ b/AsbCloudInfrastructure/Background/PeriodicWorks/WorkDataSaubStat.cs
@@ -151,8 +151,6 @@ namespace AsbCloudInfrastructure.Background.PeriodicWorks
private static DataSaubStatDto CalcStat(DetectedOperationDto operation, Span span)
{
- var hasOscillation = EnabledSubsystemsFlags.AutoOscillation.HasEnabledSubsystems(operation.EnabledSubsystems);
-
var aggregatedValues = CalcAggregate(span);
var dateStart = span[0].DateTime;
var dateEnd = span[^1].DateTime;
@@ -181,7 +179,7 @@ namespace AsbCloudInfrastructure.Background.PeriodicWorks
RotorSpeed = aggregatedValues.RotorSpeed,
IdCategory = operation.IdCategory,
EnabledSubsystems = operation.EnabledSubsystems,
- HasOscillation = hasOscillation,
+ HasOscillation = operation.EnabledSubsystems.IsAutoOscillation,
IdTelemetry = operation.IdTelemetry,
Flow = aggregatedValues.Flow
};
diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs
index 1139dd3a..6e8b3e89 100644
--- a/AsbCloudInfrastructure/DependencyInjection.cs
+++ b/AsbCloudInfrastructure/DependencyInjection.cs
@@ -42,6 +42,7 @@ using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System;
+using AsbCloudApp.Data.DetectedOperation;
using AsbCloudInfrastructure.Services.ProcessMapPlan.Export;
using AsbCloudInfrastructure.Services.WellOperations.Factories;
@@ -51,6 +52,10 @@ namespace AsbCloudInfrastructure
{
public static void MapsterSetup()
{
+ TypeAdapterConfig.GlobalSettings.Default.Config
+ .ForType()
+ .Ignore(source => source.OperationCategory);
+
TypeAdapterConfig.GlobalSettings.Default.Config
.ForType()
.Ignore(source => source.Driller);
diff --git a/AsbCloudInfrastructure/Repository/DetectedOperationRepository.cs b/AsbCloudInfrastructure/Repository/DetectedOperationRepository.cs
index 1dc63f37..3864b4e1 100644
--- a/AsbCloudInfrastructure/Repository/DetectedOperationRepository.cs
+++ b/AsbCloudInfrastructure/Repository/DetectedOperationRepository.cs
@@ -1,5 +1,4 @@
using AsbCloudApp.Data.DetectedOperation;
-using AsbCloudApp.Exceptions;
using AsbCloudApp.Repositories;
using AsbCloudApp.Requests;
using AsbCloudApp.Services;
@@ -12,38 +11,51 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
-using Microsoft.EntityFrameworkCore.ChangeTracking;
+using AsbCloudApp.Data;
namespace AsbCloudInfrastructure.Repository;
-public class DetectedOperationRepository : IDetectedOperationRepository
+public class DetectedOperationRepository : CrudRepositoryBase, IDetectedOperationRepository
{
- private readonly IAsbCloudDbContext dbContext;
private readonly ITelemetryService telemetryService;
- public DetectedOperationRepository(IAsbCloudDbContext dbContext,
+ public DetectedOperationRepository(IAsbCloudDbContext context,
ITelemetryService telemetryService)
+ : base(context)
{
- this.dbContext = dbContext;
this.telemetryService = telemetryService;
}
-
- public async Task Delete(DetectedOperationByTelemetryRequest request, CancellationToken token)
+
+ public async Task DeleteAsync(DetectedOperationByTelemetryRequest request, CancellationToken token)
{
var query = BuildQuery(request);
dbContext.Set().RemoveRange(query);
return await dbContext.SaveChangesAsync(token);
}
- public async Task DeleteRange(IEnumerable ids, CancellationToken token)
+ public async Task> GetPageAsync(DetectedOperationByTelemetryRequest request, CancellationToken token)
{
- var query = dbContext.Set()
- .Where(e => ids.Contains( e.Id));
+ var skip = request.Skip ?? 0;
+ var take = request.Take ?? 32;
- dbContext.Set()
- .RemoveRange(query);
+ var query = BuildQuery(request);
- return await dbContext.SaveChangesAsync(token);
+ var entities = await query.Skip(skip)
+ .Take(take)
+ .AsNoTracking()
+ .ToArrayAsync(token);
+
+ var offset = telemetryService.GetTimezone(request.IdTelemetry).Offset;
+
+ var paginationContainer = new PaginationContainer
+ {
+ Skip = skip,
+ Take = take,
+ Count = await query.CountAsync(token),
+ Items = entities.Select(o => Convert(o, offset))
+ };
+
+ return paginationContainer;
}
public async Task> GetLastDetectedDatesAsync(CancellationToken token) =>
@@ -60,82 +72,18 @@ public class DetectedOperationRepository : IDetectedOperationRepository
{
var query = BuildQuery(request)
.Include(o => o.OperationCategory);
- var entities = await query.ToArrayAsync(token);
+ var entities = await query.AsNoTracking().ToArrayAsync(token);
var offset = telemetryService.GetTimezone(request.IdTelemetry).Offset;
var dtos = entities.Select(o => Convert(o, offset));
return dtos;
}
-
- public async Task InsertRange(int? idEditor, IEnumerable dtos, CancellationToken token)
- {
- if(!dtos.Any())
- return 0;
-
- var entities = dtos.Select(Convert);
- var dbset = dbContext.Set();
- foreach(var entity in entities)
- {
- if (idEditor.HasValue)
- entity.IdEditor = idEditor.Value;
-
- entity.Creation = DateTimeOffset.UtcNow;
- entity.Id = default;
- dbset.Add(entity);
- }
-
- return await dbContext.SaveChangesWithExceptionHandling(token);
- }
-
- public async Task UpdateRange(int idEditor, IEnumerable dtos, CancellationToken token)
- {
- if (!dtos.Any())
- return 0;
-
- var ids = dtos
- .Select(o => o.Id)
- .Distinct()
- .ToArray();
-
- if (ids.Any(id => id == default))
- throw new ArgumentInvalidException(nameof(dtos), "Все записи должны иметь Id");
-
- if (ids.Length != dtos.Count())
- throw new ArgumentInvalidException(nameof(dtos), "Все записи должны иметь уникальные Id");
-
- var dbSet = dbContext.Set();
-
- var existingEntitiesCount = await dbSet
- .Where(o => ids.Contains(o.Id))
- .CountAsync(token);
-
- if (ids.Length != existingEntitiesCount)
- throw new ArgumentInvalidException(nameof(dtos), "Все записи должны существовать в БД");
-
- var entities = dtos
- .Select(dto =>
- {
- var entity = Convert(dto);
- entity.IdEditor = idEditor;
- return entity;
- })
- .ToArray();
-
- var entries = new EntityEntry[entities.Length];
- for(var i = 0; i < entities.Length; i++)
- entries[i] = dbSet.Update(entities[i]);
-
- var result = await dbContext.SaveChangesWithExceptionHandling(token);
-
- foreach (var entry in entries)
- entry.State = EntityState.Detached;
-
- return result;
- }
-
+
private IQueryable BuildQuery(DetectedOperationByTelemetryRequest request)
{
var query = dbContext.Set()
+ .OrderBy(o => o.DateStart)
+ .ThenBy(o => o.DepthStart)
.Where(o => o.IdTelemetry == request.IdTelemetry);
if (request.IdsCategories.Any())
@@ -160,32 +108,21 @@ public class DetectedOperationRepository : IDetectedOperationRepository
}
if (request.SortFields?.Any() == true)
- {
query = query.SortBy(request.SortFields);
- }
- else
- query = query
- .OrderBy(o => o.DateStart)
- .ThenBy(o => o.DepthStart);
-
- if (request.Skip.HasValue)
- query = query.Skip((int)request.Skip);
-
- if (request.Take.HasValue)
- query = query.Take((int)request.Take);
return query;
}
-
+
private static DetectedOperationDto Convert(DetectedOperation src, TimeSpan offset)
{
var dto = src.Adapt();
dto.DateStart = src.DateStart.ToOffset(offset);
dto.DateEnd = src.DateEnd.ToOffset(offset);
+ dto.EnabledSubsystems = src.EnabledSubsystems;
return dto;
}
- private static DetectedOperation Convert(DetectedOperationDto src)
+ protected override DetectedOperation Convert(DetectedOperationDto src)
{
var entity = src.Adapt();
entity.DateStart = src.DateStart.ToUniversalTime();
diff --git a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationExportService.cs b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationExportService.cs
index 6ed731f6..00baba7f 100644
--- a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationExportService.cs
+++ b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationExportService.cs
@@ -162,8 +162,7 @@ public class DetectedOperationExportService
private static string GetCategoryName(IEnumerable wellOperationCategories, DetectedOperationDto current)
{
var idCategory = current.IdCategory;
- if (idCategory == WellOperationCategory.IdSlide &&
- EnabledSubsystemsFlags.AutoOscillation.HasEnabledSubsystems(current.EnabledSubsystems))
+ if (idCategory == WellOperationCategory.IdSlide && current.EnabledSubsystems.IsAutoOscillation)
return "Бурение в слайде с осцилляцией";
var category = wellOperationCategories.FirstOrDefault(o => o.Id == current.IdCategory);
diff --git a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs
index 15631c2c..167dc4de 100644
--- a/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs
+++ b/AsbCloudInfrastructure/Services/DetectOperations/DetectedOperationService.cs
@@ -11,6 +11,7 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using AsbCloudApp.Data.WellOperation;
+using AsbCloudApp.Exceptions;
using AsbCloudInfrastructure.Services.DetectOperations.Detectors;
namespace AsbCloudInfrastructure.Services.DetectOperations;
@@ -80,6 +81,43 @@ public class DetectedOperationService : IDetectedOperationService
return dtos;
}
+ public async Task InsertRangeManualAsync(int idEditor, int idWell, IEnumerable dtos, CancellationToken token)
+ {
+ var idTelemetry = await GetIdTelemetryByWell(idWell, token);
+
+ foreach (var dto in dtos)
+ {
+ dto.IdEditor = idEditor;
+ dto.IdTelemetry = idTelemetry;
+ }
+
+ return await operationRepository.InsertRangeAsync(dtos, token);
+ }
+
+ public async Task UpdateRangeManualAsync(int idEditor, int idWell, IEnumerable dtos, CancellationToken token)
+ {
+ var idTelemetry = await GetIdTelemetryByWell(idWell, token);
+
+ foreach (var dto in dtos)
+ {
+ dto.IdEditor = idEditor;
+ dto.IdTelemetry = idTelemetry;
+ }
+
+ return await operationRepository.UpdateRangeAsync(dtos, token);
+ }
+
+ private async Task GetIdTelemetryByWell(int idWell, CancellationToken token)
+ {
+ var well = await wellService.GetOrDefaultAsync(idWell, token) ??
+ throw new ArgumentInvalidException(nameof(idWell), "Well doesn`t exist");
+
+ var idTelemetry = well.IdTelemetry ??
+ throw new ArgumentInvalidException(nameof(idWell), "У скважины отсутствует телеметрия");
+
+ return idTelemetry;
+ }
+
public async Task> GetCategoriesAsync(int? idWell, CancellationToken token)
{
if(idWell is null)
@@ -213,7 +251,7 @@ public class DetectedOperationService : IDetectedOperationService
return 0;
var requestByTelemetry = new DetectedOperationByTelemetryRequest(well.IdTelemetry.Value, request);
- var result = await operationRepository.Delete(requestByTelemetry, token);
+ var result = await operationRepository.DeleteAsync(requestByTelemetry, token);
return result;
}
diff --git a/AsbCloudInfrastructure/Services/DetectOperations/WorkOperationDetection.cs b/AsbCloudInfrastructure/Services/DetectOperations/WorkOperationDetection.cs
index e1e1212e..d001471e 100644
--- a/AsbCloudInfrastructure/Services/DetectOperations/WorkOperationDetection.cs
+++ b/AsbCloudInfrastructure/Services/DetectOperations/WorkOperationDetection.cs
@@ -48,7 +48,7 @@ public class WorkOperationDetection: Work
var detectedOperations = await detectedOperationService.DetectOperationsAsync(telemetryId, beginDate, token);
if (detectedOperations.Any())
- await detectedOperationRepository.InsertRange(null, detectedOperations, token);
+ await detectedOperationRepository.InsertRangeAsync(detectedOperations, token);
}
}
}
diff --git a/AsbCloudWebApi/Controllers/SAUB/DetectedOperationController.cs b/AsbCloudWebApi/Controllers/SAUB/DetectedOperationController.cs
index b5a94856..11d7451d 100644
--- a/AsbCloudWebApi/Controllers/SAUB/DetectedOperationController.cs
+++ b/AsbCloudWebApi/Controllers/SAUB/DetectedOperationController.cs
@@ -1,5 +1,4 @@
-using AsbCloudApp.Data;
-using AsbCloudApp.Data.DetectedOperation;
+using AsbCloudApp.Data.DetectedOperation;
using AsbCloudApp.Requests;
using AsbCloudApp.Services;
using Microsoft.AspNetCore.Authorization;
@@ -7,6 +6,7 @@ using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
+using AsbCloudApp.Data;
using AsbCloudApp.Data.WellOperation;
using AsbCloudApp.Exceptions;
using AsbCloudApp.Repositories;
@@ -52,7 +52,7 @@ namespace AsbCloudWebApi.Controllers.SAUB
{
var idUser = await AssertUserHasAccessToWellAsync(idWell, token);
- var result = await detectedOperationRepository.InsertRange(idUser, dtos, token);
+ var result = await detectedOperationService.InsertRangeManualAsync(idUser, idWell, dtos, token);
return Ok(result);
}
@@ -70,7 +70,7 @@ namespace AsbCloudWebApi.Controllers.SAUB
{
var idUser = await AssertUserHasAccessToWellAsync(idWell, token);
- var result = await detectedOperationRepository.UpdateRange(idUser, dtos, token);
+ var result = await detectedOperationService.UpdateRangeManualAsync(idUser, idWell, dtos, token);
return Ok(result);
}
@@ -88,7 +88,7 @@ namespace AsbCloudWebApi.Controllers.SAUB
{
await AssertUserHasAccessToWellAsync(idWell, token);
- var result = await detectedOperationRepository.DeleteRange(ids, token);
+ var result = await detectedOperationRepository.DeleteRangeAsync(ids, token);
return Ok(result);
}
@@ -117,9 +117,8 @@ namespace AsbCloudWebApi.Controllers.SAUB
///
///
[HttpGet]
- [ProducesResponseType(typeof(DetectedOperationDto), StatusCodes.Status200OK)]
- public async Task GetAsync(int idWell,
- [FromQuery] DetectedOperationRequest request,
+ [ProducesResponseType(typeof(PaginationContainer), StatusCodes.Status200OK)]
+ public async Task GetAsync(int idWell, [FromQuery] DetectedOperationRequest request,
CancellationToken token)
{
await AssertUserHasAccessToWellAsync(idWell, token);
@@ -131,7 +130,7 @@ namespace AsbCloudWebApi.Controllers.SAUB
var requestToService = new DetectedOperationByTelemetryRequest(well.IdTelemetry.Value, request);
- var result = await detectedOperationRepository.Get(requestToService, token);
+ var result = await detectedOperationRepository.GetPageAsync(requestToService, token);
return Ok(result);
}