public async Task<IHttpActionResult> RegisterAdmin(AdminRegistrationData model) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, Surname = model.Surname }; var result = await userManager.CreateAsync(user, model.Password); if (!result.Succeeded) { return GetErrorResult(result); } result = await userManager.AddClaimAsync(user.Id, new Claim(ClaimTypes.Role, UserRole.Internal.ToString().ToLowerInvariant())); if (!result.Succeeded) { return GetErrorResult(result); } return Ok(user.Id); }
public async Task <IHttpActionResult> RegisterAdmin(AdminRegistrationData model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, Surname = model.Surname }; var result = await userManager.CreateAsync(user, model.Password); if (!result.Succeeded) { return(GetErrorResult(result)); } result = await userManager.AddClaimAsync(user.Id, new Claim(ClaimTypes.Role, UserRole.Internal.ToString().ToLowerInvariant())); if (!result.Succeeded) { return(GetErrorResult(result)); } return(Ok(user.Id)); }
public async Task <string> RegisterAdminAsync(string accessToken, AdminRegistrationData adminRegistrationData) { httpClient.SetBearerToken(accessToken); var response = await httpClient.PostAsJsonAsync(Controller + "RegisterAdmin", adminRegistrationData); return(await response.CreateResponseAsync <string>()); }
public async Task <ActionResult> Register(AdminRegistrationViewModel model) { if (!ModelState.IsValid) { return(View(await GetModelData(model))); } var adminRegistrationData = new AdminRegistrationData { Email = model.Email, FirstName = model.Name, Surname = model.Surname, Password = model.Password, ConfirmPassword = model.ConfirmPassword }; try { var response = await oauthClientCredentialClient().GetClientCredentialsAsync(); var userId = await client.Registration.RegisterAdminAsync(response.AccessToken, adminRegistrationData); var signInResponse = await oauthClient().GetAccessTokenAsync(model.Email, model.Password); authenticationManager.SignIn(signInResponse.GenerateUserIdentity()); var emailSent = await client.Registration.SendEmailVerificationAsync(signInResponse.AccessToken, new EmailVerificationData { Url = Url.Action("AdminVerifyEmail", "Registration", null, Request.Url.Scheme) }); await client.SendAsync(signInResponse.AccessToken, new CreateInternalUser(userId, model.JobTitle, model.LocalAreaId.GetValueOrDefault(), model.CompetentAuthority.GetValueOrDefault())); return(RedirectToAction("AdminEmailVerificationRequired")); } catch (ApiBadRequestException ex) { this.HandleBadRequest(ex); if (ModelState.IsValid) { throw; } } return(View(await GetModelData(model))); }
public async Task<ActionResult> Register(AdminRegistrationViewModel model) { if (!ModelState.IsValid) { return View(await GetModelData(model)); } var adminRegistrationData = new AdminRegistrationData { Email = model.Email, FirstName = model.Name, Surname = model.Surname, Password = model.Password, ConfirmPassword = model.ConfirmPassword }; try { var userId = await client.Registration.RegisterAdminAsync(adminRegistrationData); var signInResponse = await oauthClient().GetAccessTokenAsync(model.Email, model.Password); authenticationManager.SignIn(signInResponse.GenerateUserIdentity()); var emailSent = await client.Registration.SendEmailVerificationAsync(signInResponse.AccessToken, new EmailVerificationData { Url = Url.Action("AdminVerifyEmail", "Registration", null, Request.Url.Scheme) }); await client.SendAsync(signInResponse.AccessToken, new CreateInternalUser(userId, model.JobTitle, model.LocalAreaId.GetValueOrDefault(), model.CompetentAuthority.GetValueOrDefault())); return RedirectToAction("AdminEmailVerificationRequired"); } catch (ApiBadRequestException ex) { this.HandleBadRequest(ex); if (ModelState.IsValid) { throw; } } return View(await GetModelData(model)); }
public async Task<string> RegisterAdminAsync(AdminRegistrationData adminRegistrationData) { var response = await httpClient.PostAsJsonAsync(Controller + "RegisterAdmin", adminRegistrationData); return await response.CreateResponseAsync<string>(); }