public async Task <IActionResult> AddPost(AddPostVM model) { if (!ModelState.IsValid) { var post = await CreateAddPostVM(); return(View(post)); } else { var user = await _userManager.GetUserAsync(HttpContext.User); var postToAdd = PostMappers.AddPostToVM(model); var imagepath = _imageProcessorService.ImageUpload(model); postToAdd.ImagePath = imagepath; postToAdd.PostCreator = user; await _postService.AddPost(postToAdd); return(RedirectToAction("Index", new { postToAdd.PostId })); } }
public async Task <IActionResult> MemberDetails(BlogUserViewModel model) { var user = await _userManager.GetUserAsync(HttpContext.User); var imagePath = _imageProcessor.ImageUpload(model); user.UserName = model.UserName; user.Email = model.Email; user.FirstName = model.FirstName; user.LastName = model.LastName; user.Bio = model.Bio; user.ProfilePhoto = imagePath; user.PhoneNumber = model.PhoneNumber; //user = UserMapper.MapBackToBlogUser(model); var result = await _userManager.UpdateAsync(user); if (result.Succeeded) { return(RedirectToAction("Member")); } return(View(model)); }
public async Task <IActionResult> SignUp(SignUpViewModel model) { if (!ModelState.IsValid) //if the modelstate returned is not valid { return(View()); //A view is returned showing the validation errors thrown by the models } string imagePath = string.Empty; if (model.Image != null) { imagePath = _imageServices.ImageUpload(model); } if (await _userMngr.FindByEmailAsync(model.EmailAddress) != null) { //returns error message if email already exists in database ModelState.AddModelError("", "User with email already exists!"); return(View(model)); } BlogUser user = new BlogUser { FirstName = model.FirstName, LastName = model.LastName, Email = model.EmailAddress, UserName = model.UserName, ProfilePhoto = imagePath }; try { var result = await _userMngr.CreateAsync(user, model.Password); //creates a user and sets password if (!result.Succeeded) { foreach (var err in result.Errors) { ModelState.AddModelError("", err.Description); } return(View(model)); } await _userMngr.AddToRoleAsync(user, "Member"); //assign member role to a new user by default //sends a congratulatory mail to the new user var mailDetails = new MailDetails { MessageTitle = "CONGRATULATIONS", MessageBody = $"Congratulations {user.UserName}, you are now a member of the elite community of readers and writers here at BLOGIT. Remember, Readers are leaders!!!", Recievers = new List <string> { user.Email } }; _mailService.SendMail(mailDetails); } catch (Exception e) { _logger.LogError(e.Message); } //signs in the new user and returns to the home index view await _signInMngr.PasswordSignInAsync(user, model.Password, false, false); return(RedirectToAction("Index", "Home")); }