using AsbCloudApp.Data; using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Services { /// /// сервис операций по скважине /// public interface IWellOperationService { /// /// список названий операций /// /// IEnumerable GetCategories(); // TODO: объединить параметры в объект запроса /// /// Получить список операций /// /// /// /// /// /// /// /// /// /// /// /// /// Task> GetOperationsAsync( int idWell, int? operationType = null, IEnumerable sectionTypeIds = null, IEnumerable operationCategoryIds = null, DateTime begin = default, DateTime end = default, double minDepth = double.MinValue, double maxDepth = double.MaxValue, int skip = 0, int take = 32, CancellationToken token = default); /// /// Получить статистику операции по скважине с группировкой по категориям /// /// /// /// /// /// /// /// /// /// /// Task> GetGroupOperationsStatAsync( int idWell, int? operationType = null, IEnumerable sectionTypeIds = null, IEnumerable operationCategoryIds = null, DateTime begin = default, DateTime end = default, double minDepth = double.MinValue, double maxDepth = double.MaxValue, CancellationToken token = default); /// /// Получить операцию по id /// /// /// /// Task GetOrDefaultAsync(int id, CancellationToken token); //todo: idWell Не нужен /// /// Добавить несколько операций за один раз /// /// /// /// /// Task InsertRangeAsync(int idWell, IEnumerable wellOperationDtos, CancellationToken token); //todo: id Не нужны /// /// Обновить существующую операцию /// /// /// /// /// /// Task UpdateAsync(int idWell, int idOperation, WellOperationDto item, CancellationToken token); /// /// Удалить операции по id /// /// /// /// Task DeleteAsync(IEnumerable ids, CancellationToken token); /// /// Список секций /// /// IDictionary GetSectionTypes(); /// /// дата/время первой операции по скважине /// /// /// DateTimeOffset? FirstOperationDate(int idWell); } }