public IEnumerable <Post> GetFilteredPosts(Data.Models.Forum forum, string searchQuery) { return(string.IsNullOrEmpty(searchQuery) ? forum.Posts : forum.Posts.Where(post => post.Title.Contains(searchQuery) || post.Content.Contains(searchQuery))); }
//Return a forum and associated posts identified by its primary key public IActionResult Topic(int id, string searchQuery) { Data.Models.Forum forum = _forumService.GetById(id); IEnumerable <Post> posts = new List <Post>(); //IEnumerable<Post> posts = _postService.GetPostsbyForum(id); //Refactored: //Get all the posts from the forum, then enumerate them to a list, //Then provide them to the viewModel //Nb nullOrEmpty strings checked in method posts = _postService.GetFilteredPosts(forum, searchQuery).ToList(); var postListings = posts.Select(post => new PostListingModel { Id = post.Id, AuthorName = post.User.UserName, AuthorId = post.User.Id, AuthorRating = post.User.Rating, Title = post.Title, DatePosted = post.Created.ToString(), RepliesCount = post.Replies.Count(), Forum = BuildForumListing(post) }); var model = new ForumTopicModel { Posts = postListings, Forum = BuildForumListing(forum) }; return(View(model)); }
public async Task <IActionResult> AddForum(AddForumModel model) { var imageUri = ""; if (model.ImageUpload != null) { var blockBlob = PostForumImage(model.ImageUpload); imageUri = blockBlob.Uri.AbsoluteUri; } else { imageUri = "/images/users/default.png"; } var forum = new Data.Models.Forum() { Title = model.Title, Description = model.Description, Created = DateTime.Now, ImageUrl = imageUri }; await _forumService.Add(forum); return(RedirectToAction("Index", "Forum")); }
public async Task <IActionResult> AddForum(AddForumModel model) { var imageUri = ""; if (model.ImageUpload != null) { var blockBlob = PostForumImage(model.ImageUpload); imageUri = blockBlob.Uri.AbsoluteUri; } else { imageUri = "/images/users/default.png"; } var forum = new Data.Models.Forum() { Title = model.Title, Description = model.Description, Created = DateTime.Now, ImageUrl = imageUri, GroupId = model.GroupId }; if (forum.Description != null && forum.Title != null) { await _forumService.Add(forum); } return(RedirectToAction("ChosenGroupAsync", "Group", new { id = model.GroupId })); }
/*Gets called from ForumController. * Get the forum for the particular topic (using Entyity Framework to find it by id), * then return matching posts (title or content) using where */ public IEnumerable <Post> GetFilteredPosts(Data.Models.Forum forum, string searchQuery) { //Check if string is null, in which case return all posts, otherwise filtered posts return(String.IsNullOrEmpty(searchQuery) ?forum.Posts : forum.Posts.Where(post => post.Title.Contains(searchQuery) || post.Content.Contains(searchQuery))); }
private static ForumListingModel BuildForumListing(Data.Models.Forum forum) { return(new ForumListingModel { Id = forum.Id, ImageUrl = forum.ImageUrl, Name = forum.Title, Description = forum.Description }); }
public async Task Add(Data.Models.Forum forum) { _context.Add(forum); await _context.SaveChangesAsync(); }
public Task Create(Data.Models.Forum forum) { throw new NotImplementedException(); //return new Task(_context.Forums.Add(forum)); }
private ForumListingModel BuildForumListing(Post post) { Data.Models.Forum forum = post.Forum; return(BuildForumListing(forum)); }
public Task Create(Data.Models.Forum forum) { throw new NotImplementedException(); }