public async Task <IActionResult> OnPostAsync() { var user = await _userManager.GetUserAsync(User); if (user == null) { return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.")); } if (!ModelState.IsValid) { await LoadAsync(user); return(Page()); } // First Name if (Input.FirstName != null) { user.FirstName = Input.FirstName; await _context.SaveChangesAsync(); } // Last Name if (Input.LastName != null) { user.LastName = Input.LastName; await _context.SaveChangesAsync(); } // Phone Number var phoneNumber = await _userManager.GetPhoneNumberAsync(user); if (Input.PhoneNumber != phoneNumber) { var setPhoneResult = await _userManager.SetPhoneNumberAsync(user, Input.PhoneNumber); if (!setPhoneResult.Succeeded) { StatusMessage = "Unexpected error when trying to set phone number."; return(RedirectToPage()); } } // Avatar if (Input.Avatar != null) { user.FileData = await _fileService.ConvertFileToByteArrayAsync(Input.Avatar); user.FileName = Input.Avatar.FileName; await _context.SaveChangesAsync(); } await _signInManager.RefreshSignInAsync(user); StatusMessage = "Your profile has been updated"; return(RedirectToPage()); }
public async Task <IActionResult> Accept(string email, string code, string firstName, string lastName, IFormFile avatar, string password) { var invitation = await _context.Invitation.FirstOrDefaultAsync(i => i.Code.ToString() == code); byte[] fileData; string fileName; if (avatar != null) { fileData = await _fileService.ConvertFileToByteArrayAsync(avatar); fileName = avatar.FileName; } else { fileData = await _fileService.GetDefaultAvatarFileBytesAsync(); fileName = _fileService.GetDefaultAvatarFileName(); } var user = new FPUser { FirstName = firstName, LastName = lastName, FileName = fileName, FileData = fileData, UserName = email, Email = email, HouseHoldId = invitation.HouseHoldId, EmailConfirmed = true }; invitation.Accepted = true; // where the magic happens await _userManager.CreateAsync(user, password); await _userManager.AddToRoleAsync(user, Roles.Member.ToString()); await _signInManager.SignInAsync(user, false); await _context.SaveChangesAsync(); return(RedirectToAction("Dashboard", "HouseHolds")); }
public async Task <IActionResult> Create([Bind("Id,HouseHoldId,FileName,Description,ContentType,FileData")] Attachment attachment, IFormFile file) { if (ModelState.IsValid) { var user = await _userManager.GetUserAsync(User); attachment.HouseHoldId = (int)user.HouseHoldId; attachment.FileName = file.FileName; attachment.FileData = await _fileservice.ConvertFileToByteArrayAsync(file); attachment.ContentType = $"application/{Path.GetExtension(file.FileName).Replace(".", "")}"; attachment.Uploaded = DateTime.Now; _context.Add(attachment); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["HouseHoldId"] = new SelectList(_context.Set <HouseHold>(), "Id", "Name", attachment.HouseHoldId); return(View(attachment)); }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); if (ModelState.IsValid) { byte[] fileData; string fileName; if (Input.Avatar != null) { fileData = await _fileService.ConvertFileToByteArrayAsync(Input.Avatar); fileName = Input.Avatar.FileName; } else { fileData = await _fileService.GetDefaultAvatarFileBytesAsync(); fileName = _fileService.GetDefaultAvatarFileName(); } var user = new FPUser { FirstName = Input.FirstName, LastName = Input.LastName, FileName = fileName, FileData = fileData, UserName = Input.Email, Email = Input.Email }; var result = await _userManager.CreateAsync(user, Input.Password); await _userManager.AddToRoleAsync(user, Roles.New.ToString()); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code)); var callbackUrl = Url.Page( "/Account/ConfirmEmail", pageHandler: null, values: new { area = "Identity", userId = user.Id, code = code, returnUrl = returnUrl }, protocol: Request.Scheme); await _emailSender.SendEmailAsync(Input.Email, "Confirm your email", $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); if (_userManager.Options.SignIn.RequireConfirmedAccount) { return(RedirectToPage("RegisterConfirmation", new { email = Input.Email, returnUrl = returnUrl })); } else { await _signInManager.SignInAsync(user, isPersistent : false); return(LocalRedirect(returnUrl)); } } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } // If we got this far, something failed, redisplay form return(Page()); }