1- using Models ;
2- using System ;
3- using System . Collections . Generic ;
4- using System . Threading . Tasks ;
1+ namespace Contracts ;
52
6- namespace Contracts
3+ /// <summary>
4+ /// Repository for download analytics and statistics
5+ /// </summary>
6+ public interface IDownloadAnalyticsRepository
77{
8- /// <summary>
9- /// Repository for download analytics and statistics
10- /// </summary>
11- public interface IDownloadAnalyticsRepository
12- {
13- Task < DownloadAnalytics > AddDownloadRecordAsync ( DownloadAnalytics analytics ) ;
14- Task < IEnumerable < DownloadAnalytics > > GetDownloadHistoryAsync ( string fileId ) ;
15- Task < IEnumerable < DownloadAnalytics > > GetDownloadHistoryAsync ( DateTime fromDate , DateTime toDate ) ;
16- Task < DownloadStatistics > GetDownloadStatisticsAsync ( ) ;
17- Task < DownloadStatistics > GetDownloadStatisticsAsync ( DateTime fromDate , DateTime toDate ) ;
18- Task < IEnumerable < FilePopularityInfo > > GetMostPopularFilesAsync ( int count = 10 ) ;
19- Task < IEnumerable < DailyDownloadStats > > GetDailyStatsAsync ( DateTime fromDate , DateTime toDate ) ;
20- Task < long > GetTotalDownloadsAsync ( ) ;
21- Task < long > GetTotalBytesDownloadedAsync ( ) ;
22- Task DeleteOldAnalyticsAsync ( DateTime olderThan ) ;
23- }
24- }
8+ Task < DownloadAnalytics > AddDownloadRecordAsync ( DownloadAnalytics analytics , CancellationToken token ) ;
9+
10+ Task < IEnumerable < DownloadAnalytics > > GetDownloadHistoryAsync ( string fileId , CancellationToken token ) ;
11+
12+ Task < IEnumerable < DownloadAnalytics > > GetDownloadHistoryAsync ( DateTime fromDate , DateTime toDate , CancellationToken token ) ;
13+
14+ Task < DownloadStatistics > GetDownloadStatisticsAsync ( CancellationToken token ) ;
15+
16+ Task < DownloadStatistics > GetDownloadStatisticsAsync ( DateTime fromDate , DateTime toDate , CancellationToken token ) ;
17+
18+ Task < IEnumerable < FilePopularityInfo > > GetMostPopularFilesAsync ( int count = 10 , CancellationToken token = default ) ;
19+
20+ Task < IEnumerable < DailyDownloadStats > > GetDailyStatsAsync ( DateTime fromDate , DateTime toDate , CancellationToken token ) ;
21+
22+ Task < long > GetTotalDownloadsAsync ( CancellationToken token ) ;
23+
24+ Task < long > GetTotalBytesDownloadedAsync ( CancellationToken token ) ;
25+
26+ Task DeleteOldAnalyticsAsync ( DateTime olderThan , CancellationToken token ) ;
27+ }
0 commit comments