public IActionResult Edit(int id, PostDataModel postDataModel, IFormFile _formFile) { PostDataModel post = AutoInclude.IncludeAll <PostDataModel>(this.applicationContext.Posts).FirstOrDefault(bp => bp.PostId == id); if (ModelState.IsValid) { if (post != null) { post.Title = postDataModel.Title; post.Preview = postDataModel.Preview; post.Content = postDataModel.Content; post.LastChangeDate = DateTime.Now; post.Link = postDataModel.Link; post.Tags = postDataModel.Tags; if (_formFile != null) { post.Cover = FileToByteArray(_formFile); } } this.applicationContext.Posts.Update(post); this.applicationContext.SaveChanges(); return(RedirectToAction("View", "Blog", new { id = post.Blog.BlogId })); } postDataModel.Title = post.Title; postDataModel.Content = post.Content; postDataModel.Cover = post.Cover; return(View(postDataModel)); }
public IActionResult Index() { SearchViewModel search = new SearchViewModel { Blogs = AutoInclude.IncludeAll <BlogDataModel>(this.applicationContext.Blogs), Posts = AutoInclude.IncludeAll <PostDataModel>(this.applicationContext.Posts) }; return(View(search)); }
public IActionResult Edit(int id) { PostDataModel target = AutoInclude.IncludeAll <PostDataModel>(this.applicationContext.Posts).FirstOrDefault(bp => bp.PostId == id); if (!(this.User.FindFirstValue(ClaimTypes.NameIdentifier).Equals(target.Author.Id) || this.User.IsInRole("Administrator"))) { return(RedirectToAction("NoAccess", "Home")); } return(View(target)); }
public async Task <IActionResult> Delete(int id) { CommentDataModel commentDataModel = AutoInclude.IncludeAll <CommentDataModel>(this.applicationContext.Comments).FirstOrDefault(c => c.CommentId == id); if (!(this.User.FindFirstValue(ClaimTypes.NameIdentifier).Equals(commentDataModel.Author.Id) || this.User.IsInRole("Administrator"))) { return(RedirectToAction("NoAccess", "Home")); } this.applicationContext.Comments.Remove(commentDataModel); await this.applicationContext.SaveChangesAsync(); return(RedirectToAction("Details", "Post", new { id = commentDataModel.Post.PostId })); }
public async Task <IActionResult> Edit(int id, CommentDataModel comment) { if (ModelState.IsValid) { CommentDataModel commentDataModel = AutoInclude.IncludeAll <CommentDataModel>(this.applicationContext.Comments).FirstOrDefault(c => c.CommentId == id); commentDataModel.Content = comment.Content; this.applicationContext.Update(commentDataModel); await this.applicationContext.SaveChangesAsync(); return(RedirectToAction("Details", "Post", new { id = commentDataModel.PostId })); } return(View(comment)); }
public IActionResult Pin(int id) { var post = AutoInclude.IncludeAll <PostDataModel>(this.applicationContext.Posts).FirstOrDefault(p => p.PostId == id); if (post.Pinned) { post.Pinned = false; } else { post.Pinned = true; } this.applicationContext.Posts.Update(post); this.applicationContext.SaveChanges(); return(RedirectToAction("View", "Blog", new { id = post.Blog.BlogId })); }
public async Task <IActionResult> Archiv(int id) { PostDataModel target = AutoInclude.IncludeAll <PostDataModel>(this.applicationContext.Posts).FirstOrDefault(bp => bp.PostId == id); if (!(this.User.FindFirstValue(ClaimTypes.NameIdentifier).Equals(target.Author.Id) || this.User.IsInRole("Administrator"))) { return(RedirectToAction("NoAccess", "Home")); } if (target.Archieved == false) { target.Archieved = true; } else { target.Archieved = false; } this.applicationContext.Posts.Update(target); await this.applicationContext.SaveChangesAsync(); return(RedirectToAction("Details", "Post", new { id })); }
public async Task <IActionResult> Delete(int id) { PostDataModel target = AutoInclude.IncludeAll <PostDataModel>(this.applicationContext.Posts).FirstOrDefault(bp => bp.PostId == id); ApplicationUser author = this.applicationContext.Users.FirstOrDefault(u => u.Id == target.Author.Id); if (!(this.User.FindFirstValue(ClaimTypes.NameIdentifier).Equals(target.Author.Id) || this.User.IsInRole("Administrator"))) { return(RedirectToAction("NoAccess", "Home")); } author.Posts.Remove(target); this.applicationContext.Comments.RemoveRange(target.Comments); if (target != null) { this.applicationContext.Users.Update(author); this.applicationContext.Posts.Remove(target); } await this.applicationContext.SaveChangesAsync(); return(RedirectToAction("View", "Blog", new { id = target.Blog.BlogId })); }
public IActionResult Search(string searchString) { if (string.IsNullOrWhiteSpace(searchString)) { return(RedirectToAction("Index", "Home")); } var posts = AutoInclude.IncludeAll <PostDataModel>(this.applicationContext.Posts); var blogs = AutoInclude.IncludeAll <BlogDataModel>(this.applicationContext.Blogs); var users = this.applicationContext.Users .Include(x => x.Posts) .ThenInclude(x => x.Comments) .Include(x => x.Posts) .ThenInclude(x => x.Author) .Include(x => x.Posts) .ThenInclude(x => x.Blog) .Include(x => x.Comments).ToList(); List <PostDataModel> searchedPost = new List <PostDataModel>(); foreach (PostDataModel post in posts) { if (post.Title.ToLower().Contains(searchString.ToLower()) || post.Preview.ToLower().Contains(searchString.ToLower()) || post.Tags.ToLower().Contains(searchString.ToLower())) { if (!searchedPost.Contains(post)) { searchedPost.Add(post); } } } List <BlogDataModel> searchedBlogs = new List <BlogDataModel>(); foreach (BlogDataModel blog in blogs) { if (blog.Name.ToLower().Contains(searchString.ToLower()) || blog.Description.ToLower().Contains(searchString.ToLower())) { if (!searchedBlogs.Contains(blog)) { searchedBlogs.Add(blog); } } } List <ApplicationUser> searchedUsers = new List <ApplicationUser>(); foreach (ApplicationUser user in users) { if (user.UserName.ToLower().Contains(searchString.ToLower())) { if (!searchedUsers.Contains(user)) { searchedUsers.Add(user); } } } SearchViewModel result = new SearchViewModel { Posts = searchedPost, Blogs = searchedBlogs, Users = searchedUsers }; return(View(result)); }