public async Task <IActionResult> OnPost() { if (!ModelState.IsValid || string.IsNullOrWhiteSpace(UserId)) { return(Page()); } ApplicationUser user = new ApplicationUser { Name = ViewModel.Name, Gender = ViewModel.Gender, DateOfBirth = ViewModel.DateOfBirth.Date, DateAdded = DateTime.Now, Nationality = ViewModel.Nationality, UserId = UserId }; var response = await _services.AddUserAsync(user); if (response == null) { TempData["Failed"] = ""; RedirectToPage("/Areas/Identity/Account/Register"); } TempData["Success"] = "Registration was successful"; return(RedirectToPage("/Volunteer/Index")); }
public async Task <IActionResult> RegisterUser() { var login = User.FindFirst(c => c.Type == "urn:github:login")?.Value; var credentials = new Credentials(await HttpContext.GetTokenAsync("access_token")); var github = new GitHubClient(new ProductHeaderValue("AspNetCoreGitHubAuth")); var gitUser = await github.User.Get(login); var user = new Entities.User { GitHubId = gitUser.Id, Login = gitUser.Login, }; var userId = await _usersServices.AddUserAsync(user); return(Redirect($"http://localhost:3000/authorize?id={userId}")); }
public async Task <IActionResult> OnPost() { if (!ModelState.IsValid) { return(Page()); } ApplicationUser applicationUser = new ApplicationUser { Name = ViewModel.Name, Gender = ViewModel.Gender, DateAdded = DateTime.Now, DateOfBirth = ViewModel.DateOfBirth.Date, Nationality = ViewModel.Nationality }; // process file upload if (ViewModel.Photograph != null) { using (var memoryStream = new MemoryStream()) { await ViewModel.Photograph.CopyToAsync(memoryStream); // Upload the file if less than 2 MB if (memoryStream.Length < 2097152) { applicationUser.Photograph = memoryStream.ToArray(); } else { ModelState.AddModelError("File", "The file is too large."); } } } IdentityUser identityUser = new IdentityUser { Email = ViewModel.Email, UserName = ViewModel.Email, PhoneNumber = ViewModel.Phone }; var user = await _userManager.CreateAsync(identityUser, $"StaffPassword@{ViewModel.DateOfBirth.Year}"); if (user.Succeeded) { var newUser = await _userManager.FindByNameAsync(ViewModel.Email); var roleResponse = await _userManager.AddToRoleAsync(newUser, "Administrator"); if (roleResponse.Succeeded) { applicationUser.UserId = newUser.Id; var appUser = await _userServices.AddUserAsync(applicationUser); if (appUser != null) { TempData["Success"] = "Staff was created successfully"; return(RedirectToPage("/Admin/Staffs")); } else { TempData["Failed"] = "The operation failed, try again"; _ = await _userManager.DeleteAsync(newUser); } } } return(Page()); }