using AsbCloudApp.Data.Trajectory; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Repositories { /// <summary> /// CRUD-репозиторий для работы с траекторией из клиента (плановой и фактической) /// </summary> /// <returns></returns> //TrajectoryGeoPlanDto public interface ITrajectoryEditableRepository<T> : ITrajectoryRepository<T> where T : TrajectoryGeoDto { /// <summary> /// Добавить строки с координатами по одной скважине. Если в коллекции координаты для разных скважин получаем exception. /// </summary> /// <param name="trajectoryRows"></param> /// <param name="token"></param> /// <returns>количество записанных строк или exception с описанием</returns> Task<int> AddRangeAsync(IEnumerable<T> trajectoryRows, CancellationToken token); /// <summary> /// Добавить одну строку с координатами /// </summary> /// <param name="trajectoryRow"></param> /// <param name="token"></param> /// <returns></returns> Task<int> AddAsync(T trajectoryRow, CancellationToken token); /// <summary> /// Обновить строку с координатами /// </summary> /// <param name="row"></param> /// <param name="token"></param> /// <returns></returns> Task<int> UpdateAsync(T row, CancellationToken token); /// <summary> /// Удалить строки с координатами /// </summary> /// <param name="ids"></param> /// <param name="token"></param> /// <returns></returns> Task<int> DeleteRangeAsync(IEnumerable<int> ids, CancellationToken token); /// <summary> /// Удалить всю траекторию по ИД скважины /// </summary> /// <param name="idWell"></param> /// <param name="token"></param> /// <returns></returns> Task<int> DeleteByIdWellAsync(int idWell, CancellationToken token); } }