public async Task <User> AddUserAsync(User user) { var userEntity = user.ToEntity(); _identityDbContext.Users.Add(userEntity); await _identityDbContext.SaveChangesAsync(); return(user); }
/// <summary> /// Maps a model to an existing entity instance /// </summary> /// <param name="model"></param> /// <param name="entity"></param> public static void ToEntity(this User model, EntityModels.User entity) { Mapper.Map(model, entity); foreach (var userLogin in model.LastLoginDatesByClient) { var existingLogin = entity.UserLogins.FirstOrDefault(l => l.ClientId.Equals(userLogin.ClientId, StringComparison.OrdinalIgnoreCase)); if (existingLogin != null) { existingLogin.LoginDate = userLogin.LoginDate; } else { entity.UserLogins.Add(new UserLogin { ClientId = userLogin.ClientId, LoginDate = userLogin.LoginDate }); } } foreach (var claim in model.Claims) { var existingClaim = entity.Claims.FirstOrDefault(c => c.Type == claim.Type && c.Value == claim.Value); if (existingClaim == null) { entity.Claims.Add(new UserClaim { Type = claim.Type, Value = claim.Value }); } } var claimsToRemove = new List <UserClaim>(); foreach (var existingUserClaim in entity.Claims) { var newClaim = model.Claims.FirstOrDefault( c => c.Type == existingUserClaim.Type && c.Value == existingUserClaim.Value); if (newClaim == null) { claimsToRemove.Add(existingUserClaim); } } foreach (var claimToRemove in claimsToRemove) { entity.Claims.Remove(claimToRemove); } }
public async Task UpdateUserAsync(User user) { var existingUser = await _identityDbContext.Users .Where(u => u.SubjectId.Equals(user.SubjectId, StringComparison.OrdinalIgnoreCase) && u.ProviderName.Equals(user.ProviderName, StringComparison.OrdinalIgnoreCase)) .Include(u => u.UserLogins) .Include(u => u.Claims) .FirstOrDefaultAsync(); user.ToEntity(existingUser); _identityDbContext.Users.Update(existingUser); await _identityDbContext.SaveChangesAsync(); }
public async Task <User> AddUserAsync(User user) { var userEntity = user.ToEntity(); IdentityDbContext.Users.Add(userEntity); await IdentityDbContext.SaveChangesAsync(); await EventService.RaiseAsync( new EntityCreatedAuditEvent <User>( UserResolverService.Username, UserResolverService.ClientId, UserResolverService.Subject, user.SubjectId, user, SerializationSettings)); return(user); }
/// <summary> /// Maps a model to an entity /// </summary> /// <param name="model"></param> /// <returns></returns> public static EntityModels.User ToEntity(this User model) { var userEntity = Mapper.Map <EntityModels.User>(model); foreach (var userLogin in model.LastLoginDatesByClient) { userEntity.UserLogins.Add( new UserLogin { ClientId = userLogin.ClientId, LoginDate = userLogin.LoginDate }); } userEntity.Claims = model.Claims.Select(c => new UserClaim { Type = c.Type, Value = c.Value }).ToList(); return(userEntity); }
public async Task UpdateUserAsync(User user) { var existingUser = await IdentityDbContext.Users .Where(u => u.SubjectId == user.SubjectId && u.ProviderName == user.ProviderName) .Include(u => u.UserLogins) .Include(u => u.Claims) .FirstOrDefaultAsync(); user.ToEntity(existingUser); IdentityDbContext.Users.Update(existingUser); await IdentityDbContext.SaveChangesAsync(); await EventService.RaiseAsync( new EntityUpdatedAuditEvent <User>( UserResolverService.Username, UserResolverService.ClientId, UserResolverService.Subject, user.SubjectId, user, SerializationSettings)); }
public void UpdateUser(User user) { UpdateUserAsync(user).Wait(); }