private void ChangePasswordSync(ChangePasswordViewModel viewModel, string baseUri) { if (SessionWrapper.LoginSession == null || SessionWrapper.LoginSession.LogoutTime.HasValue == false) { var intAccMngr = new AccountManager() { Adapter = Adapters.AdapterType.Controller }; var extAccMngr = new AccountManager() { Adapter = Adapters.AdapterType.Service, BaseUri = baseUri }; try { AsyncHelper.RunSync(() => intAccMngr.ChangePasswordAsync(SessionWrapper.SessionToken, viewModel.OldPassword, viewModel.NewPassword)); var externLogin = AsyncHelper.RunSync(() => extAccMngr.LogonAsync(viewModel.Email, viewModel.OldPassword)); AsyncHelper.RunSync(() => extAccMngr.ChangePasswordAsync(externLogin.SessionToken, viewModel.OldPassword, viewModel.NewPassword)); AsyncHelper.RunSync(() => extAccMngr.LogoutAsync(externLogin.SessionToken)); } catch (Exception ex) { throw ex; } } }
public async Task <IActionResult> ChangePasswordAsync(ChangePasswordViewModel viewModel) { if (ModelState.IsValid == false) { return(View(viewModel)); } bool handled = false; var viewName = "ConfirmationChangePassword"; BeforeDoChangePassword(viewModel, ref handled); if (handled == false) { if (SessionWrapper.LoginSession == null || SessionWrapper.LoginSession.LogoutTime.HasValue) { return(RedirectToAction("Logon", new { returnUrl = "ChangePassword" })); } try { var accMngr = new AccountManager(); await accMngr.ChangePasswordAsync(SessionWrapper.LoginSession.SessionToken, viewModel.OldPassword, viewModel.NewPassword).ConfigureAwait(false); } catch (Exception ex) { viewModel.ActionError = GetExceptionError(ex); return(View("ChangePassword", viewModel)); } } AfterDoChangePassword(viewModel, ref viewName); return(View(viewName)); }