using AsbCloudApp.Data.DailyReport; using System; using System.Collections.Generic; using System.IO; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Services { /// <summary> /// Суточный рапорт (сводка) /// </summary> public interface IDailyReportService { /// <summary> /// получить список сформированных рапортов по скважине за период времени /// </summary> /// <param name="idWell"></param> /// <param name="v1"></param> /// <param name="v2"></param> /// <param name="cancellationToken"></param> /// <returns></returns> Task<IEnumerable<DailyReportDto>> GetListAsync(int idWell, DateTime? v1, DateTime? v2, CancellationToken cancellationToken); /// <summary> /// получить из БД или генерировать данные для суточного рапорта за указанную дату /// </summary> /// <param name="idWell"></param> /// <param name="date"></param> /// <param name="token"></param> /// <returns></returns> Task<DailyReportDto> GetOrGenerateAsync(int idWell, DateTime date, CancellationToken token); /// <summary> /// Добавить новый рапорт /// </summary> /// <param name="idWell"></param> /// <param name="dto"></param> /// <param name="token"></param> /// <returns></returns> Task<int> AddAsync(int idWell, DailyReportDto dto, CancellationToken token = default); /// <summary> /// изменить данные для суточного рапорта /// </summary> /// <param name="idWell"></param> /// <param name="date"></param> /// <param name="dto"></param> /// <param name="token"></param> /// <returns></returns> Task<int> UpdateAsync(int idWell, DateTime date, DailyReportDto dto, CancellationToken token = default); /// <summary> /// Сформировать файл рапорта /// </summary> /// <param name="idWell"></param> /// <param name="date"></param> /// <param name="token"></param> /// <returns></returns> Task<Stream> MakeReportAsync(int idWell, DateTime date, CancellationToken token = default); } }