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 } )); }
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; }
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 } )); }
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 } )); }