public async Task <ActionResult> Create(InternalUserCreationViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var userCreationData = new InternalUserCreationData { Email = model.Email, FirstName = model.Name, Surname = model.Surname, Password = model.Password, ConfirmPassword = model.ConfirmPassword, ActivationBaseUrl = externalRouteService.ActivateInternalUserAccountUrl, }; try { using (var client = apiClient()) { var response = await apiClientCredential().GetClientCredentialsAsync(); var userId = await client.User.CreateInternalUserAsync(userCreationData, response.AccessToken); var loginResult = await weeeAuthorization.SignIn(model.Email, model.Password, false); if (loginResult.Successful) { await client.SendAsync(loginResult.AccessToken, new AddCompetentAuthorityUser(userId)); return(RedirectToAction("AdminAccountActivationRequired")); } ModelState.AddModelError(string.Empty, loginResult.ErrorMessage); } } catch (ApiBadRequestException ex) { this.HandleBadRequest(ex); if (ModelState.IsValid) { throw; } AddRemoveModelStateErrors(); } catch (SmtpException) { ViewBag.Errors = new[] { "The activation email was not sent, please try again later." }; } return(View(model)); }
public async Task<ActionResult> Create(InternalUserCreationViewModel model) { if (!ModelState.IsValid) { return View(model); } var userCreationData = new InternalUserCreationData { Email = model.Email, FirstName = model.Name, Surname = model.Surname, Password = model.Password, ConfirmPassword = model.ConfirmPassword, ActivationBaseUrl = externalRouteService.ActivateInternalUserAccountUrl, }; try { using (var client = apiClient()) { var userId = await client.User.CreateInternalUserAsync(userCreationData); var loginResult = await weeeAuthorization.SignIn(model.Email, model.Password, false); if (loginResult.Successful) { await client.SendAsync(loginResult.AccessToken, new AddCompetentAuthorityUser(userId)); return RedirectToAction("AdminAccountActivationRequired"); } ModelState.AddModelError(string.Empty, loginResult.ErrorMessage); } } catch (ApiBadRequestException ex) { this.HandleBadRequest(ex); if (ModelState.IsValid) { throw; } AddRemoveModelStateErrors(); } catch (SmtpException) { ViewBag.Errors = new[] { "The activation email was not sent, please try again later." }; } return View(model); }