Ejemplo n.º 1
0
        public UpdateAccountServiceResult UpdateAccount(UpdateAccountServiceModel model)
        {
            var applicationUserManager = HttpContext.Current.GetOwinContext().GetUserManager <ApplicationUserManager>();

            var user = applicationUserManager.FindById(model.UserId);

            user.Email             = model.Email;
            user.FamilyName        = model.FamilyName;
            user.AwesomenessNumber = model.AwesomenessNumber;
            user.GivenName         = model.GivenName;
            user.PhoneNumber       = model.PhoneNumber;
            user.RegistrationDate  = model.RegistrationDate;
            user.TwitterAccount    = model.TwitterAccount;

            var result = new UpdateAccountServiceResult
            {
                Succeeded = AccountUpdateResult.Failed,
                Errors    = new List <string>()
            };

            if (!string.IsNullOrEmpty(model.NewPassword) && model.NewPassword == model.ConfirmPassword)
            {
                //Validate password
                var validatePasswordResult = applicationUserManager.PasswordValidator.ValidateAsync(model.NewPassword).Result;

                if (validatePasswordResult.Succeeded)
                {
                    user.PasswordHash = applicationUserManager.PasswordHasher.HashPassword(model.NewPassword);
                    //Update User and change password
                    var updateResult = applicationUserManager.UpdateAsync(user).Result;
                    result.Succeeded = (AccountUpdateResult)Convert.ToInt32(updateResult.Succeeded);
                    result.Errors    = updateResult.Errors;
                }
                else
                {
                    result.Succeeded = AccountUpdateResult.InvalidPassword;
                    result.Errors    = validatePasswordResult.Errors;
                }
            }
            else
            {//Update user without changing password
                var updateResult = applicationUserManager.UpdateAsync(user).Result;
                result.Succeeded = (AccountUpdateResult)Convert.ToInt32(updateResult.Succeeded);
                result.Errors    = updateResult.Errors;
            }

            return(result);
        }
        public ActionResult Edit(UpdateAccountServiceModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var result = accountService.UpdateAccount(model);

            if (result.Succeeded == Enumerations.AccountUpdateResult.InvalidPassword)
            {//Add password error to model errors, if password did not pass validation
                ModelState.AddModelError("NewPassword", result.Errors.ToList()[0]);
                return(View(model));
            }
            if (result.Succeeded == Enumerations.AccountUpdateResult.Failed)
            {
                model.Errors = result.Errors.ToList();
                return(View(model));
            }

            return(RedirectToAction("List", new { email = model.Email }));
        }
Ejemplo n.º 3
0
        public UpdateAccountServiceModel GetAccountViewModel(string accountId)
        {
            var applicationUserManager = HttpContext.Current.GetOwinContext().GetUserManager <ApplicationUserManager>();

            var user = applicationUserManager.FindById(accountId);

            var result = new UpdateAccountServiceModel
            {
                AwesomenessNumber = user.AwesomenessNumber,
                TwitterAccount    = user.TwitterAccount,
                NewPassword       = null,
                ConfirmPassword   = null,
                Email             = user.Email,
                FamilyName        = user.FamilyName,
                GivenName         = user.GivenName,
                PhoneNumber       = user.PhoneNumber,
                RegistrationDate  = user.RegistrationDate,
                UserId            = user.Id,
                Errors            = new List <string>()
            };

            return(result);
        }