public async Task <IActionResult> CommentOnPost(ReturnPostVM forComment) { var user = await _userManager.GetUserAsync(HttpContext.User); if (user == null) { return(RedirectToAction("Login", "Account")); } else { if (!ModelState.IsValid) { var returnedPost = await CreatePostVM(forComment.PostId); return(RedirectToAction("Index", new { returnedPost.PostId })); } var post = await _postService.GetPost(forComment.PostId); forComment.addComment.UserFullName = user.FirstName + " " + user.LastName; forComment.addComment.Post = post; forComment.addComment.ImagePath = user.ProfilePhoto; var comment = PostMappers.MapCommentVMToComment(forComment.addComment); await _commentService.AddComment(comment); var returnPost = await CreatePostVM(forComment.PostId); return(RedirectToAction("Index", new { returnPost.PostId })); } }
public async Task <IActionResult> Approve(string postId) { var post = await _postService.GetPost(postId); var approvePostVM = PostMappers.ConvertToOtherPostVM(post); return(View(approvePostVM)); }
public async Task <IActionResult> Edit(string postId) { var post = await _postService.GetPost(postId); var editedPostVM = PostMappers.ConvertToOtherPostVM(post); return(View("EditPost", editedPostVM)); }
public async Task <IActionResult> Index() { var allPostsMain = await _postService.GetAllPosts(); var approvedPosts = allPostsMain.Where(post => post.ApprovalState == true); var allPostsVM = PostMappers.ReturnAllPosts(approvedPosts); return(View(allPostsVM)); }
public async Task <IActionResult> Edit(OtherPostActivitiesPostVM postToUpdate) { var post = await _postService.GetPost(postToUpdate.PostId); var assignEditedData = PostMappers.MapToEditedPostView(post, postToUpdate); var edit = await _postService.EditPost(post); return(RedirectToAction("Editor", "Editor")); }
/// <summary> /// Helper method to create the post details model /// </summary> /// <param name="postId"></param> /// <returns></returns> public async Task <ReturnPostVM> CreatePostVM(string postId) { var post = await _postService.GetPost(postId); var recentPosts = await _postService.GetMostRecentPost(); var returnPost = PostMappers.ReturnPosts(post, recentPosts); return(returnPost); }
public async Task <IActionResult> Editor() { var CurrentUser = await _userManager.GetUserAsync(HttpContext.User); var allPostsMain = await _postService.GetAllPosts(); var editorPsts = allPostsMain.Where(post => post.PostCreator == CurrentUser); var allPostsVM = PostMappers.ReturnAllPosts(editorPsts); allPostsVM.UserDetails = UserMapper.MapToBlogUserVM(CurrentUser); return(View("Editor", allPostsVM)); }
/// <summary> /// Gets the Admin dashboard /// </summary> /// <returns></returns> public async Task <IActionResult> Index() { var CurrentUser = await _userManager.GetUserAsync(HttpContext.User); var users = _userManager.Users; var listUsersViewModel = UserMapper.BlogUserViewModels(users); var allPostsMain = await _postService.GetAllPosts(); var allPostsVM = PostMappers.ReturnAllPosts(allPostsMain); var allData = UserMapper.ReturnAdminDataRequirements(allPostsVM.AllSinglePosts, listUsersViewModel); allData.UserDetails = UserMapper.MapToBlogUserVM(CurrentUser); return(View(allData)); }
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> LikePost(ReturnPostVM postToLike) { var user = await _userManager.GetUserAsync(HttpContext.User); if (user == null) { return(RedirectToAction("Login", "Account")); } else { if (!ModelState.IsValid) { var returnedPost = await CreatePostVM(postToLike.PostId); return(RedirectToAction("Index", new { returnedPost.PostId })); } var allLikes = await _likeService.GetAllLikes(); var checkNonRepeat = allLikes.Any(like => like.LikedPost.PostId == postToLike.PostId && like.UserWhoLiked == user); if (checkNonRepeat) { var returnPost = await CreatePostVM(postToLike.PostId); return(View("Index", returnPost)); } else { var post = await _postService.GetPost(postToLike.PostId); var Like = PostMappers.AddLike(post, user); //Change to getuser method and remove Blogit.models namespace. await _likeService.LikePost(Like); var returnPost = await CreatePostVM(postToLike.PostId); return(RedirectToAction("Index", new { returnPost.PostId })); } } }