Skip to content

Commit 6b843a6

Browse files
committed
Add CancellationToken
1 parent 7e1eac9 commit 6b843a6

38 files changed

+1588
-1816
lines changed

Contracts/Contracts.csproj

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,18 @@
88
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.1" />
99
</ItemGroup>
1010

11+
<ItemGroup>
12+
<Using Include="System" />
13+
<Using Include="System.Collections.Generic" />
14+
<Using Include="System.Linq" />
15+
<Using Include="System.Threading" />
16+
<Using Include="System.Threading.Tasks" />
17+
<Using Include="Models" />
18+
<Using Include="System.IO" />
19+
<Using Include="System.Diagnostics" />
20+
<Using Include="System.Diagnostics.Metrics" />
21+
</ItemGroup>
22+
1123
<ItemGroup>
1224
<ProjectReference Include="..\Models\Models.csproj" />
1325
</ItemGroup>

Contracts/IAnalyticsService.cs

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
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+
/// Service for download analytics and reporting
5+
/// </summary>
6+
public interface IAnalyticsService
77
{
8-
/// <summary>
9-
/// Service for download analytics and reporting
10-
/// </summary>
11-
public interface IAnalyticsService
12-
{
13-
Task RecordDownloadAsync(string fileId, string userAgent, string ipAddress, string referrer, string method);
14-
Task<DownloadStatistics> GetDownloadStatisticsAsync();
15-
Task<DownloadStatistics> GetDownloadStatisticsAsync(DateTime fromDate, DateTime toDate);
16-
Task<IEnumerable<FilePopularityInfo>> GetMostPopularFilesAsync(int count = 10);
17-
Task<IEnumerable<DailyDownloadStats>> GetDailyStatsAsync(int days = 30);
18-
Task<IEnumerable<DownloadAnalytics>> GetDownloadHistoryAsync(string fileId);
19-
Task CleanupOldAnalyticsAsync(int daysToKeep = 365);
20-
}
21-
}
8+
Task RecordDownloadAsync(string fileId, string userAgent, string ipAddress, string referrer, string method, CancellationToken token);
9+
10+
Task<DownloadStatistics> GetDownloadStatisticsAsync(CancellationToken token);
11+
12+
Task<DownloadStatistics> GetDownloadStatisticsAsync(DateTime fromDate, DateTime toDate, CancellationToken token);
13+
14+
Task<IEnumerable<FilePopularityInfo>> GetMostPopularFilesAsync(int count = 10, CancellationToken token = default);
15+
16+
Task<IEnumerable<DailyDownloadStats>> GetDailyStatsAsync(int days = 30, CancellationToken token = default);
17+
18+
Task<IEnumerable<DownloadAnalytics>> GetDownloadHistoryAsync(string fileId, CancellationToken token);
19+
20+
Task CleanupOldAnalyticsAsync(int daysToKeep = 365, CancellationToken token = default);
21+
}
Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
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+
}

Contracts/IEventHandler.cs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
1-
using Models.Events;
2-
using System.Threading.Tasks;
1+
namespace Contracts;
32

4-
namespace Contracts
3+
public interface IEventHandler<in T> where T : EventBase
54
{
6-
public interface IEventHandler<in T> where T : EventBase
7-
{
8-
Task RunAsync(T obj);
9-
}
5+
Task RunAsync(T obj, CancellationToken token);
106
}
Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,18 @@
1-
using Models;
2-
using System.Collections.Generic;
3-
using System.Threading.Tasks;
1+
namespace Contracts;
42

5-
namespace Contracts
3+
public interface IFileDetailsRepository
64
{
7-
public interface IFileDetailsRepository
8-
{
9-
Task<FileDetails> AddFileDetailsAsync(FileDetails details);
5+
Task<FileDetails> AddFileDetailsAsync(FileDetails details, CancellationToken token);
106

11-
Task<FileDetails> UpdateFileDetailsAsync(string id, FileDetails details);
7+
Task<FileDetails> UpdateFileDetailsAsync(string id, FileDetails details, CancellationToken token);
128

13-
Task<FileDetails> GetFileDetailsAsync(string id);
9+
Task<FileDetails> GetFileDetailsAsync(string id, CancellationToken token);
1410

15-
Task<FileDetails> GetFileDetailsByHashIdAsync(string hashId);
11+
Task<FileDetails> GetFileDetailsByHashIdAsync(string hashId, CancellationToken token);
1612

17-
Task<IEnumerable<FileDetails>> GetAllFileDetailsAsync();
13+
Task<IEnumerable<FileDetails>> GetAllFileDetailsAsync(CancellationToken token);
1814

19-
Task<IEnumerable<FileDetails>> GetFileDetailsByTagAsync(string tag);
15+
Task<IEnumerable<FileDetails>> GetFileDetailsByTagAsync(string tag, CancellationToken token);
2016

21-
Task DeleteFileAsync(string id);
22-
}
17+
Task DeleteFileAsync(string id, CancellationToken token);
2318
}

Contracts/ISettingsService.cs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
using Models.Settings;
1+
namespace Contracts;
22

3-
namespace Contracts
3+
public interface ISettingsService
44
{
5-
public interface ISettingsService
6-
{
7-
MongoDBAppSettings GetMongoDBAppSettings();
8-
LiteDBAppSettings GetLiteDBAppSettings();
9-
}
10-
}
5+
MongoDBAppSettings GetMongoDBAppSettings();
6+
7+
LiteDBAppSettings GetLiteDBAppSettings();
8+
}

Contracts/IStorageRepository.cs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
1-
using System.IO;
2-
using System.Threading.Tasks;
1+
namespace Contracts;
32

4-
namespace Contracts
3+
public interface IStorageRepository
54
{
6-
public interface IStorageRepository
7-
{
8-
Task<string> UploadFileAsync(Stream fileStream, string fileName);
5+
Task<string> UploadFileAsync(Stream fileStream, string fileName, CancellationToken token);
96

10-
Task<Stream> DownloadFileAsync(string id);
7+
Task<Stream> DownloadFileAsync(string id, CancellationToken token);
118

12-
Task DeleteFileAsync(string id);
13-
}
9+
Task DeleteFileAsync(string id, CancellationToken token);
1410
}

Contracts/IStorageService.cs

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,20 @@
1-
using Models;
2-
using System;
3-
using System.Collections.Generic;
4-
using System.IO;
5-
using System.Threading.Tasks;
1+
namespace Contracts;
62

7-
namespace Contracts
3+
public interface IStorageService : IDisposable
84
{
9-
public interface IStorageService : IDisposable
10-
{
11-
Task<FileDetails> UploadFileAsync(Stream fileStream, FileDetails fileDetails);
5+
Task<FileDetails> UploadFileAsync(Stream fileStream, FileDetails fileDetails, CancellationToken token);
126

13-
Task<(Stream, FileDetails)> DownloadFileAsync(string id);
7+
Task<(Stream, FileDetails)> DownloadFileAsync(string id, CancellationToken token);
148

15-
Task<FileDetails> UpdateFileDetailsAsync(string id, FileDetails details);
9+
Task<FileDetails> UpdateFileDetailsAsync(string id, FileDetails details, CancellationToken token);
1610

17-
Task<FileDetails> GetFileDetailsAsync(string id);
11+
Task<FileDetails> GetFileDetailsAsync(string id, CancellationToken token);
1812

19-
Task<IEnumerable<FileDetails>> GetAllFileDetailsAsync();
13+
Task<IEnumerable<FileDetails>> GetAllFileDetailsAsync(CancellationToken token);
2014

21-
Task<IEnumerable<FileDetails>> GetFileDetailsByTagAsync(string tag);
15+
Task<IEnumerable<FileDetails>> GetFileDetailsByTagAsync(string tag, CancellationToken token);
2216

23-
Task<string> DeleteFileAsync(string id);
17+
Task<string> DeleteFileAsync(string id, CancellationToken token);
2418

25-
Task IncrementDownloadCountAsync(FileDetails fileDetails);
26-
}
19+
Task IncrementDownloadCountAsync(FileDetails fileDetails, CancellationToken token);
2720
}

0 commit comments

Comments
 (0)