Exemplo n.º 1
0
        /// <summary>
        /// Saves modified user data into the ASP Net Identity database
        /// </summary>
        public void UpdateUser(string userId, string firstName, string lastName, string userName, string email, string password, RoleType role)
        {
            var user = UserManager.FindByIdAsync(userId).Result;

            if (user == null)
            {
                throw new EntityNotFoundException(CallContext.ResourceUri, typeof(AspNetIdentityUser), new[] { userId }, LogLevel.Error);
            }

            var anotherUser = UserManager.FindByNameAsync(userName).Result;

            if (anotherUser != null && string.Compare(anotherUser.Id, userId, true) != 0)
            {
                throw new ValidationException(Resources.Resources.Register_EmailAlreadyExists, false);
            }

            user.FirstName = firstName;
            user.LastName  = lastName;
            user.Email     = email;
            user.UserName  = userName;

            Call(UserManager.UpdateAsync(user));

            // Password
            if (!string.IsNullOrEmpty(password))
            {
                Call(UserManager.RemovePasswordAsync(user));
                Call(UserManager.AddPasswordAsync(user, password));
            }

            // Roles
            var roles = UserManager.GetRolesAsync(user).Result;

            if (!roles.SequenceEqual(new[] { role.Name() }))
            {
                Call(UserManager.RemoveFromRolesAsync(user, roles.ToArray()));
                Call(UserManager.AddToRoleAsync(user, role.Name()));
            }

            AspNetIdentityDbContext.SaveChanges();
        }
Exemplo n.º 2
0
        /// <summary>
        /// Saves modified user data into the ASP Net Identity database
        /// </summary>
        public void AddUser(string firstName, string lastName, string userName, string email, string password, RoleType role)
        {
            var anotherUser = UserManager.FindByNameAsync(userName).Result;

            // Add
            if (anotherUser != null)
            {
                throw new Exceptions.Validation.ValidationException(Resources.Resources.Register_EmailAlreadyExists, false);
            }

            var user = new AspNetIdentityUser()
            {
                FirstName = firstName,
                LastName  = lastName,
                Email     = email,
                UserName  = userName
            };

            Call(UserManager.CreateAsync(user, password));
            Call(UserManager.AddToRoleAsync(user, role.Name()));

            AspNetIdentityDbContext.SaveChanges();
        }