using System; using AsbCloudApp.Data.DetectedOperation; using AsbCloudApp.Requests; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using AsbCloudApp.Data.WellOperation; namespace AsbCloudApp.Services { /// <summary> /// Сервис автоматически определенных по телеметрии операций /// </summary> public interface IDetectedOperationService { /// <summary> /// Добавление операций /// </summary> /// <param name="idEditor"></param> /// <param name="idWell"></param> /// <param name="dtos"></param> /// <param name="token"></param> /// <returns></returns> Task<int> InsertRangeManualAsync(int idEditor, int idWell, IEnumerable<DetectedOperationDto> dtos, CancellationToken token); /// <summary> /// Редактирование операций /// </summary> /// <param name="idEditor"></param> /// <param name="idWell"></param> /// <param name="dtos"></param> /// <param name="token"></param> /// <returns></returns> Task<int> UpdateRangeManualAsync(int idEditor, int idWell, IEnumerable<DetectedOperationDto> dtos, CancellationToken token); /// <summary> /// Список названий операций. /// Если указан idWell, то возвращается список названий операций найденных на указанной скважине. /// </summary> /// <param name="idWell"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<WellOperationCategoryDto>> GetCategoriesAsync(int? idWell, CancellationToken token); /// <summary> /// Получить автоматически определенные по телеметрии операции с анализом по бурильщикам /// </summary> /// <param name="request"></param> /// <param name="token"></param> /// <returns></returns> Task<DetectedOperationListDto> GetAsync(DetectedOperationByWellRequest request, CancellationToken token); /// <summary> /// Получить автоматически определенные по телеметрии операции /// </summary> /// <param name="request"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<DetectedOperationWithDrillerDto>> GetOperationsAsync(DetectedOperationByWellRequest request, CancellationToken token); /// <summary> /// Удалить операции /// </summary> /// <param name="request"></param> /// <param name="token"></param> /// <returns></returns> Task<int> DeleteAsync(DetectedOperationByWellRequest request, CancellationToken token); /// <summary> /// Статистика по операциям /// </summary> /// <param name="request"></param> /// <param name="token"></param> /// <returns></returns> [Obsolete] Task<IEnumerable<DetectedOperationStatDto>> GetOperationsStatAsync(DetectedOperationByWellRequest request, CancellationToken token); /// <summary> /// Определение операций /// </summary> /// <param name="idTelemetry"></param> /// <param name="beginDate"></param> /// <param name="token"></param> /// <returns></returns> Task<IEnumerable<DetectedOperationDto>> DetectOperationsAsync(int idTelemetry, DateTimeOffset? beginDate, CancellationToken token); } }