public async Task<IHttpActionResult> Register(ApplicantRegistrationData model) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var user = new ApplicationUser { UserName = model.Email, Email = model.Email, PhoneNumber = model.Phone, 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.External.ToString().ToLowerInvariant())); if (!result.Succeeded) { return GetErrorResult(result); } return Ok(user.Id); }
public async Task <ActionResult> ApplicantRegistration(ApplicantRegistrationViewModel model) { var response = await oauthClientCredentialClient().GetClientCredentialsAsync(); if (ModelState.IsValid) { var applicantRegistrationData = new ApplicantRegistrationData { Email = model.Email, FirstName = model.Name, Surname = model.Surname, Phone = model.PhoneNumber, Password = model.Password, ConfirmPassword = model.ConfirmPassword }; try { var userId = await client.Registration.RegisterApplicantAsync(response.AccessToken, applicantRegistrationData); 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("VerifyEmail", "Account", null, Request.Url.Scheme) }); var addressId = await client.SendAsync(signInResponse.AccessToken, new CreateAddress { Address = model.Address, UserId = userId }); applicantRegistrationData.AddressId = addressId; return(RedirectToAction("SelectOrganisation", new { organisationName = model.OrganisationName })); } catch (ApiBadRequestException ex) { this.HandleBadRequest(ex); if (ModelState.IsValid) { throw; } } await this.BindCountryList(client, response.AccessToken); return(View(model)); } await this.BindCountryList(client, response.AccessToken); return(View(model)); }
public async Task <IHttpActionResult> Register(ApplicantRegistrationData model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = new ApplicationUser { UserName = model.Email, Email = model.Email, PhoneNumber = model.Phone, 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.External.ToString().ToLowerInvariant())); if (!result.Succeeded) { return(GetErrorResult(result)); } return(Ok(user.Id)); }
public async Task <string> RegisterApplicantAsync(string accessToken, ApplicantRegistrationData applicantRegistrationData) { httpClient.SetBearerToken(accessToken); var response = await httpClient.PostAsJsonAsync(Controller + "Register", applicantRegistrationData); return(await response.CreateResponseAsync <string>()); }
public async Task<ActionResult> ApplicantRegistration(ApplicantRegistrationViewModel model) { if (ModelState.IsValid) { var applicantRegistrationData = new ApplicantRegistrationData { Email = model.Email, FirstName = model.Name, Surname = model.Surname, Phone = model.PhoneNumber, Password = model.Password, ConfirmPassword = model.ConfirmPassword }; try { var userId = await client.Registration.RegisterApplicantAsync(applicantRegistrationData); 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("VerifyEmail", "Account", null, Request.Url.Scheme) }); var addressId = await client.SendAsync(signInResponse.AccessToken, new CreateAddress { Address = model.Address, UserId = userId }); applicantRegistrationData.AddressId = addressId; return RedirectToAction("SelectOrganisation", new { organisationName = model.OrganisationName }); } catch (ApiBadRequestException ex) { this.HandleBadRequest(ex); if (ModelState.IsValid) { throw; } } await this.BindCountryList(client); return View(model); } await this.BindCountryList(client); return View(model); }
public async Task<string> RegisterApplicantAsync(ApplicantRegistrationData applicantRegistrationData) { var response = await httpClient.PostAsJsonAsync(Controller + "Register", applicantRegistrationData); return await response.CreateResponseAsync<string>(); }