Example #1
0
        private async Task <ProcessResult <bool> > SaveUserViewModel(UserViewModel viewModel, FormMode mode)
        {
            ProcessResult <bool> processResult = new ProcessResult <bool>();

            if (mode == FormMode.Edit)
            {
                ApplicationUser user = await _userManager.FindByNameAsync(viewModel.UserName);

                if (user != null)
                {
                    UserViewModelMapper mapper = new UserViewModelMapper();
                    user = mapper.BuildRepositoryModel(viewModel, user);
                    IdentityResult identityResult = await _userManager.UpdateAsync(user);

                    processResult.SetResult(identityResult);

                    if (identityResult.Succeeded && !string.IsNullOrEmpty(viewModel.Password))
                    {
                        string token = await _userManager.GeneratePasswordResetTokenAsync(user);

                        identityResult = await _userManager.ResetPasswordAsync(user, token, viewModel.Password);

                        processResult.SetResult(identityResult);
                    }
                }
                else
                {
                    processResult.AddError("Unable to find this user");
                }
            }
            else
            {
                IdentityResult identityResult = await _userManager.CreateApplicationUserAsync(viewModel.UserName, viewModel.Nickname, viewModel.Email, viewModel.Password, JudgeMyPhotoRoles.Photographer);

                processResult.SetResult(identityResult);
            }
            return(processResult);
        }