33 using System ;
44 using System . Collections . Generic ;
55 using System . Linq ;
6+ using System . Threading ;
67 using System . Threading . Tasks ;
78 using Auditing . MessagesView ;
89 using Extensions ;
1920 class RavenAuditDataStore ( IRavenSessionProvider sessionProvider , DatabaseConfiguration databaseConfiguration )
2021 : IAuditDataStore
2122 {
22- public async Task < QueryResult < SagaHistory > > QuerySagaHistoryById ( Guid input )
23+ public async Task < QueryResult < SagaHistory > > QuerySagaHistoryById ( Guid input , CancellationToken cancellationToken )
2324 {
24- using var session = await sessionProvider . OpenSession ( ) ;
25+ using var session = await sessionProvider . OpenSession ( cancellationToken : cancellationToken ) ;
2526 var sagaHistory = await
2627 session . Query < SagaHistory , SagaDetailsIndex > ( )
2728 . Statistics ( out var stats )
28- . SingleOrDefaultAsync ( x => x . SagaId == input ) ;
29+ . SingleOrDefaultAsync ( x => x . SagaId == input , token : cancellationToken ) ;
2930
3031 return sagaHistory == null ? QueryResult < SagaHistory > . Empty ( ) : new QueryResult < SagaHistory > ( sagaHistory , new QueryStatsInfo ( $ "{ stats . ResultEtag } ", stats . TotalResults ) ) ;
3132 }
3233
33- public async Task < QueryResult < IList < MessagesView > > > GetMessages ( bool includeSystemMessages , PagingInfo pagingInfo , SortInfo sortInfo )
34+ public async Task < QueryResult < IList < MessagesView > > > GetMessages ( bool includeSystemMessages , PagingInfo pagingInfo , SortInfo sortInfo , CancellationToken cancellationToken )
3435 {
35- using var session = await sessionProvider . OpenSession ( ) ;
36+ using var session = await sessionProvider . OpenSession ( cancellationToken : cancellationToken ) ;
3637 var results = await session . Query < MessagesViewIndex . SortAndFilterOptions > ( GetIndexName ( isFullTextSearchEnabled ) )
3738 . Statistics ( out var stats )
3839 . IncludeSystemMessagesWhere ( includeSystemMessages )
3940 . Sort ( sortInfo )
4041 . Paging ( pagingInfo )
4142 . ToMessagesView ( )
42- . ToListAsync ( ) ;
43+ . ToListAsync ( token : cancellationToken ) ;
4344
4445 return new QueryResult < IList < MessagesView > > ( results , stats . ToQueryStatsInfo ( ) ) ;
4546 }
4647
47- public async Task < QueryResult < IList < MessagesView > > > QueryMessages ( string searchParam , PagingInfo pagingInfo , SortInfo sortInfo )
48+ public async Task < QueryResult < IList < MessagesView > > > QueryMessages ( string searchParam , PagingInfo pagingInfo , SortInfo sortInfo , CancellationToken cancellationToken )
4849 {
49- using var session = await sessionProvider . OpenSession ( ) ;
50+ using var session = await sessionProvider . OpenSession ( cancellationToken : cancellationToken ) ;
5051 var results = await session . Query < MessagesViewIndex . SortAndFilterOptions > ( GetIndexName ( isFullTextSearchEnabled ) )
5152 . Statistics ( out var stats )
5253 . Search ( x => x . Query , searchParam )
5354 . Sort ( sortInfo )
5455 . Paging ( pagingInfo )
5556 . ToMessagesView ( )
56- . ToListAsync ( ) ;
57+ . ToListAsync ( token : cancellationToken ) ;
5758
5859 return new QueryResult < IList < MessagesView > > ( results , stats . ToQueryStatsInfo ( ) ) ;
5960 }
6061
61- public async Task < QueryResult < IList < MessagesView > > > QueryMessagesByReceivingEndpointAndKeyword ( string endpoint , string keyword , PagingInfo pagingInfo , SortInfo sortInfo )
62+ public async Task < QueryResult < IList < MessagesView > > > QueryMessagesByReceivingEndpointAndKeyword ( string endpoint , string keyword , PagingInfo pagingInfo , SortInfo sortInfo , CancellationToken cancellationToken )
6263 {
63- using var session = await sessionProvider . OpenSession ( ) ;
64+ using var session = await sessionProvider . OpenSession ( cancellationToken : cancellationToken ) ;
6465 var results = await session . Query < MessagesViewIndex . SortAndFilterOptions > ( GetIndexName ( isFullTextSearchEnabled ) )
6566 . Statistics ( out var stats )
6667 . Search ( x => x . Query , keyword )
6768 . Where ( m => m . ReceivingEndpointName == endpoint )
6869 . Sort ( sortInfo )
6970 . Paging ( pagingInfo )
7071 . ToMessagesView ( )
71- . ToListAsync ( ) ;
72+ . ToListAsync ( token : cancellationToken ) ;
7273
7374 return new QueryResult < IList < MessagesView > > ( results , stats . ToQueryStatsInfo ( ) ) ;
7475 }
7576
76- public async Task < QueryResult < IList < MessagesView > > > QueryMessagesByReceivingEndpoint ( bool includeSystemMessages , string endpointName , PagingInfo pagingInfo , SortInfo sortInfo )
77+ public async Task < QueryResult < IList < MessagesView > > > QueryMessagesByReceivingEndpoint ( bool includeSystemMessages , string endpointName , PagingInfo pagingInfo , SortInfo sortInfo , CancellationToken cancellationToken )
7778 {
78- using var session = await sessionProvider . OpenSession ( ) ;
79+ using var session = await sessionProvider . OpenSession ( cancellationToken : cancellationToken ) ;
7980 var results = await session . Query < MessagesViewIndex . SortAndFilterOptions > ( GetIndexName ( isFullTextSearchEnabled ) )
8081 . Statistics ( out var stats )
8182 . IncludeSystemMessagesWhere ( includeSystemMessages )
8283 . Where ( m => m . ReceivingEndpointName == endpointName )
8384 . Sort ( sortInfo )
8485 . Paging ( pagingInfo )
8586 . ToMessagesView ( )
86- . ToListAsync ( ) ;
87+ . ToListAsync ( token : cancellationToken ) ;
8788
8889 return new QueryResult < IList < MessagesView > > ( results , stats . ToQueryStatsInfo ( ) ) ;
8990 }
9091
91- public async Task < QueryResult < IList < MessagesView > > > QueryMessagesByConversationId ( string conversationId , PagingInfo pagingInfo , SortInfo sortInfo )
92+ public async Task < QueryResult < IList < MessagesView > > > QueryMessagesByConversationId ( string conversationId , PagingInfo pagingInfo , SortInfo sortInfo , CancellationToken cancellationToken )
9293 {
93- using var session = await sessionProvider . OpenSession ( ) ;
94+ using var session = await sessionProvider . OpenSession ( cancellationToken : cancellationToken ) ;
9495 var results = await session . Query < MessagesViewIndex . SortAndFilterOptions > ( GetIndexName ( isFullTextSearchEnabled ) )
9596 . Statistics ( out var stats )
9697 . Where ( m => m . ConversationId == conversationId )
9798 . Sort ( sortInfo )
9899 . Paging ( pagingInfo )
99100 . ToMessagesView ( )
100- . ToListAsync ( ) ;
101+ . ToListAsync ( token : cancellationToken ) ;
101102
102103 return new QueryResult < IList < MessagesView > > ( results , stats . ToQueryStatsInfo ( ) ) ;
103104 }
104105
105- public async Task < MessageBodyView > GetMessageBody ( string messageId )
106+ public async Task < MessageBodyView > GetMessageBody ( string messageId , CancellationToken cancellationToken )
106107 {
107- using var session = await sessionProvider . OpenSession ( ) ;
108- var result = await session . Advanced . Attachments . GetAsync ( messageId , "body" ) ;
108+ using var session = await sessionProvider . OpenSession ( cancellationToken : cancellationToken ) ;
109+ var result = await session . Advanced . Attachments . GetAsync ( messageId , "body" , cancellationToken ) ;
109110
110111 if ( result == null )
111112 {
@@ -120,10 +121,10 @@ public async Task<MessageBodyView> GetMessageBody(string messageId)
120121 ) ;
121122 }
122123
123- public async Task < QueryResult < IList < KnownEndpointsView > > > QueryKnownEndpoints ( )
124+ public async Task < QueryResult < IList < KnownEndpointsView > > > QueryKnownEndpoints ( CancellationToken cancellationToken )
124125 {
125- using var session = await sessionProvider . OpenSession ( ) ;
126- var endpoints = await session . Advanced . LoadStartingWithAsync < KnownEndpoint > ( KnownEndpoint . CollectionName , pageSize : 1024 ) ;
126+ using var session = await sessionProvider . OpenSession ( cancellationToken : cancellationToken ) ;
127+ var endpoints = await session . Advanced . LoadStartingWithAsync < KnownEndpoint > ( KnownEndpoint . CollectionName , pageSize : 1024 , token : cancellationToken ) ;
127128
128129 var knownEndpoints = endpoints
129130 . Select ( x => new KnownEndpointsView
@@ -142,11 +143,11 @@ public async Task<QueryResult<IList<KnownEndpointsView>>> QueryKnownEndpoints()
142143 return new QueryResult < IList < KnownEndpointsView > > ( knownEndpoints , new QueryStatsInfo ( string . Empty , knownEndpoints . Count ) ) ;
143144 }
144145
145- public async Task < QueryResult < IList < AuditCount > > > QueryAuditCounts ( string endpointName )
146+ public async Task < QueryResult < IList < AuditCount > > > QueryAuditCounts ( string endpointName , CancellationToken cancellationToken )
146147 {
147148 var indexName = GetIndexName ( isFullTextSearchEnabled ) ;
148149
149- using var session = await sessionProvider . OpenSession ( ) ;
150+ using var session = await sessionProvider . OpenSession ( cancellationToken : cancellationToken ) ;
150151 // Maximum should really be 31 queries if there are 30 days of audit data, but default limit is 30
151152 session . Advanced . MaxNumberOfRequestsPerSession = 40 ;
152153
@@ -155,7 +156,7 @@ public async Task<QueryResult<IList<AuditCount>>> QueryAuditCounts(string endpoi
155156 var oldestMsg = await session . Query < MessagesViewIndex . SortAndFilterOptions > ( indexName )
156157 . Where ( m => m . ReceivingEndpointName == endpointName )
157158 . OrderBy ( m => m . ProcessedAt )
158- . FirstOrDefaultAsync ( ) ;
159+ . FirstOrDefaultAsync ( token : cancellationToken ) ;
159160
160161 if ( oldestMsg != null )
161162 {
@@ -173,11 +174,15 @@ public async Task<QueryResult<IList<AuditCount>>> QueryAuditCounts(string endpoi
173174 . Statistics ( out var stats )
174175 . Where ( m => m . ReceivingEndpointName == endpointName && ! m . IsSystemMessage && m . ProcessedAt >= date && m . ProcessedAt < nextDate )
175176 . Take ( 0 )
176- . ToArrayAsync ( ) ;
177+ . ToArrayAsync ( token : cancellationToken ) ;
177178
178179 if ( stats . TotalResults > 0 )
179180 {
180- results . Add ( new AuditCount { UtcDate = date , Count = stats . TotalResults } ) ;
181+ results . Add ( new AuditCount
182+ {
183+ UtcDate = date ,
184+ Count = stats . TotalResults
185+ } ) ;
181186 }
182187 }
183188 }
0 commit comments