public async Task<User> SaveUser(User user) { User savedUser = null; entities.User dbUser = new entities.User { Claims = user.Claims, DisplayName = user.DisplayName, Email = user.Email, UserName = user.UserName }; if(user.Id != Guid.Empty) { dbUser.Id = user.Id; var result = await users.ReplaceOneAsync( filter: new BsonDocument("_id", dbUser.Id), replacement: dbUser); if (result.IsAcknowledged == false || result.ModifiedCount == 0 || result.ModifiedCount > 1) throw new InvalidOperationException("Could not update the user! " + user); } else { await users.InsertOneAsync(dbUser); } savedUser = new User { Claims = new List<string>(dbUser.Claims), DisplayName = dbUser.DisplayName, Email = dbUser.Email, Id = dbUser.Id, UserName = dbUser.UserName }; return savedUser; }
public UserIdentity(User user) { this.Claims = user.Claims; this.DisplayName = user.DisplayName; this.Email = user.Email; this.Id = user.Id; this.UserName = user.UserName; }
public async Task<User> FindUserByEmail(string email) { User user = null; var u = await users.FindAsync(a => a.Email.ToLower() == email.ToLower()); if(u != null) { var userList = await u.ToListAsync(); if (userList != null && userList.Count > 0) { var dbUser = userList[0]; user = new User { Claims = new List<string>(dbUser.Claims), DisplayName = dbUser.DisplayName, Email = dbUser.Email, Id = dbUser.Id, UserName = dbUser.UserName }; } } return user; }