//Password Change
        public async Task ChangePassword()
        {
            if (CurrentPasswordValidation())
            {
                if (PasswordValidation() && PasswordConfirmationValidation())
                {
                    if (member == null)
                    {
                        return;
                    }
                    Model.Update.ChangePasswordModel request = new Model.Update.ChangePasswordModel
                    {
                        NewPassword          = Password,
                        PasswordConfirmation = PassConfirmation,
                        OldPassword          = CurrentPassword
                    };
                    var result = await _memberService.PostMethod <Model.Response.Member>(member.Id, request, "ChangePassword");

                    if (result != null || result != default(Model.Response.Member))
                    {
                        await Application.Current.MainPage.DisplayAlert("Info", "Succesfully updated password", "Ok");

                        Application.Current.MainPage = new NavigationPage(new LoginPage());
                    }
                    else
                    {
                        await Application.Current.MainPage.DisplayAlert("Error", "There was an error", "Cancel");
                    }
                }
            }
        }
Esempio n. 2
0
        public async Task <Model.Response.MemberLL> ChangePassword(int id, Model.Update.ChangePasswordModel model)
        {
            var member = await _context.Members.FirstOrDefaultAsync(x => x.Id == id);

            if (member == null)
            {
                throw new UserException("User not found!");
            }

            var oldHash = _securityService.GenerateHash(member.PasswordSalt, model.OldPassword);

            if (oldHash != member.PasswordHash)
            {
                throw new UserException("Wrong old password");
            }

            member.PasswordHash = _securityService.GenerateHash(member.PasswordSalt, model.NewPassword);
            await _context.SaveChangesAsync();

            return(_mapper.Map <Model.Response.MemberLL>(member));
        }