4
4
using MiniTwit . Core . IRepositories ;
5
5
using MiniTwit . Core . Responses ;
6
6
using MongoDB . Driver ;
7
- using System . Linq ;
8
7
9
8
namespace MiniTwit . Infrastructure . Repositories ;
10
9
@@ -83,8 +82,8 @@ public async Task<DBResult<Message>> CreateAsync(string userId, string text)
83
82
84
83
public DBResult < IEnumerable < Message > > GetAllNonFlagged ( CancellationToken ct = default )
85
84
{
86
- var messages = _context . Messages . Find ( m => m . Flagged == 0 ) . SortByDescending ( m => m . PubDate ) . ToList ( ct ) ;
87
-
85
+ var messages = _context . Messages . Find ( m => m . Flagged == 0 ) . SortByDescending ( m => m . PubDate ) . ToList ( ct ) ;
86
+
88
87
return new DBResult < IEnumerable < Message > >
89
88
{
90
89
Model = messages ,
@@ -94,8 +93,8 @@ public DBResult<IEnumerable<Message>> GetAllNonFlagged(CancellationToken ct = de
94
93
95
94
public async Task < DBResult < IEnumerable < Message > > > GetAllNonFlaggedAsync ( CancellationToken ct = default )
96
95
{
97
- var messages = await _context . Messages . Find ( m => m . Flagged == 0 ) . SortByDescending ( m => m . PubDate ) . ToListAsync ( ct ) ;
98
-
96
+ var messages = await _context . Messages . Find ( m => m . Flagged == 0 ) . SortByDescending ( m => m . PubDate ) . ToListAsync ( ct ) ;
97
+
99
98
return new DBResult < IEnumerable < Message > >
100
99
{
101
100
Model = messages ,
@@ -109,10 +108,10 @@ public async Task<DBResult<IEnumerable<Message>>> GetAllNonFlaggedPageNumberLimi
109
108
var messages = await _context . Messages
110
109
. Find ( m => m . Flagged == 0 )
111
110
. SortByDescending ( m => m . PubDate )
112
- . Skip ( ( pageNumber - 1 ) * 50 )
111
+ . Skip ( ( pageNumber - 1 ) * 50 )
113
112
. Limit ( 50 )
114
113
. ToListAsync ( ) ;
115
-
114
+
116
115
return new DBResult < IEnumerable < Message > >
117
116
{
118
117
Model = messages ,
@@ -198,7 +197,7 @@ public async Task<DBResult<IEnumerable<Message>>> GetAllByUsernameAsync(string u
198
197
ErrorType = ErrorType . INVALID_USERNAME
199
198
} ;
200
199
}
201
-
200
+
202
201
//All the followers where userName is whoId
203
202
var allFollows = GetAllWhoUserFollows ( user ) ;
204
203
@@ -353,4 +352,12 @@ public async Task<DBResult<IEnumerable<Message>>> GetAllFollowedByUserIdAsync(st
353
352
{
354
353
return await _context . Users . Find ( u => u . Username == username ) . FirstOrDefaultAsync ( ct ) ;
355
354
}
355
+
356
+ public async Task IndexDB ( )
357
+ {
358
+ var collection = _context . Messages ;
359
+ var indexKeysDefinition = Builders < Message > . IndexKeys . Descending ( m => m . PubDate ) ;
360
+ var indexModel = new CreateIndexModel < Message > ( indexKeysDefinition , new CreateIndexOptions { Background = true } ) ;
361
+ await collection . Indexes . CreateOneAsync ( indexModel ) ;
362
+ }
356
363
}
0 commit comments