コード例 #1
0
ファイル: Worker.cs プロジェクト: BohdanBuhrii/MeLike
 private Task UpdatePostAuthors(UserNameChangeLog change)
 {
     return(_context.Posts.UpdateManyAsync(
                el => el.Author == change.Old,
                Builders <Post> .Update.Set(el => el.Author, change.New),
                new UpdateOptions {
         IsUpsert = false
     }
                ));
 }
コード例 #2
0
ファイル: UsersService.cs プロジェクト: BohdanBuhrii/MeLike
        public async Task RenameUser(string newName)
        {
            var changeLog = new UserNameChangeLog {
                Old = User.Login, New = newName
            };
            var setter = Builders <User> .Update.Set(el => el.Login, newName);

            await _context.Users.UpdateOneAsync(el => el.Id == User.Id, setter);

            await _context.UserNameChangeLogs.InsertOneAsync(changeLog);

            User.Login = newName;
        }
コード例 #3
0
ファイル: Worker.cs プロジェクト: BohdanBuhrii/MeLike
 private Task UpdatePostEmotions(UserNameChangeLog change)
 {
     return(_context.Posts.UpdateManyAsync(
                el => el.Emotions.Any(e => e.Author == change.Old),
                Builders <Post> .Update.Set("Emotions.$[g].Author", change.New),
                new UpdateOptions
     {
         ArrayFilters = new List <ArrayFilterDefinition>
         {
             new BsonDocumentArrayFilterDefinition <BsonDocument>(new BsonDocument("g.Author", change.Old)),
         },
         IsUpsert = false
     }
                ));
 }
コード例 #4
0
ファイル: Worker.cs プロジェクト: BohdanBuhrii/MeLike
 private Task UpdateUserFriends(UserNameChangeLog change)
 {
     return(_context.Users.UpdateManyAsync(
                el => el.Friends.Contains(change.Old),
                Builders <User> .Update.Set("Friends.$[g]", change.New),
                new UpdateOptions
     {
         ArrayFilters = new List <ArrayFilterDefinition>
         {
             new BsonDocumentArrayFilterDefinition <BsonDocument>(new BsonDocument("g", change.Old)),
         },
         IsUpsert = false
     }
                ));
 }