public async Task EnsureSeedDataAsync() { var userFound = await m_userManager.FindByEmailAsync("*****@*****.**"); if (userFound == null) { var newUser = new TwitterCloneUser() { UserName = "******", Email = "*****@*****.**" }; var userRes = await m_userManager.CreateAsync(newUser, "qwertyui"); } m_context.SaveChanges(); if (!m_context.TwitterClonePosts.Any()) { //Add new data var TwitterClonePost = new TwitterClonePost() { Message = "First message! TwitterCloneTwitterClone!", PostTime = DateTimeOffset.UtcNow, User = await m_userManager.FindByEmailAsync("*****@*****.**") }; m_context.TwitterClonePosts.Add(TwitterClonePost); m_context.SaveChanges(); } }
public async Task SendConfirmationEmail(TwitterCloneUser a_user) { var code = await m_userManager.GenerateEmailConfirmationTokenAsync(a_user); var callbackUrl = Url.Action("EmailConfirmed", "Auth", new { userId = a_user.Id, code = code }, protocol: HttpContext.Request.Scheme); var emailBody = $"Please confirm your account by clicking this link: <br/> <a href=\"{callbackUrl}\"> {callbackUrl} </a>"; await m_emailSender.SendEmailAsync(a_user.Email, "Confirm your account", emailBody); }
public async Task <JsonResult> Post([FromBody] SignupViewModel vm, string returnUrl) { if (!ModelState.IsValid) { return(Json(new { error = "Unknown sign up error." })); } if (vm.Password != vm.ConfirmPassword) { return(Json(new { error = "The passwords you entered did not match." })); } var userFound = await m_userManager.FindByNameAsync(vm.Username); if (userFound != null) { return(Json(new { error = "This username is already in use." })); } userFound = await m_userManager.FindByEmailAsync(vm.Email); if (userFound != null) { return(Json(new { error = "This email address is already in use." })); } var newUser = new TwitterCloneUser() { UserName = vm.Username, Email = vm.Email }; var signUpResult = await m_userManager.CreateAsync(newUser, vm.Password); if (!signUpResult.Succeeded) { if (signUpResult.Errors.Any()) { if (signUpResult.Errors.First().Code == "InvalidUserName") { return(Json(new { error = "Invalid username. Usernames can only contain letters, numbers, and .-_" })); } } return(Json(new { error = "Unknown sign up error." })); } await SendConfirmationEmail(newUser); return(Json(new { url = "confirmemailsent" })); }
public async Task <IActionResult> UploadProfilePicture(ICollection <IFormFile> files) { TwitterCloneUser user = await m_userManager.FindByNameAsync(User.Identity.Name); var file = files.First(); var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"'); Stream stream = file.OpenReadStream(); string key = user.Id + ".jpg"; m_profilePictureService.UploadProfilePicture(key, stream); user.HasProfilePicture = true; await m_userManager.UpdateAsync(user); return(RedirectToAction("ChangeProfilePicture", "Auth")); }