Ejemplo n.º 1
0
 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)));
 }
Ejemplo n.º 2
0
        //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));
        }
Ejemplo n.º 3
0
        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 }));
        }
Ejemplo n.º 5
0
 /*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)));
 }
Ejemplo n.º 6
0
 private static ForumListingModel BuildForumListing(Data.Models.Forum forum)
 {
     return(new ForumListingModel
     {
         Id = forum.Id,
         ImageUrl = forum.ImageUrl,
         Name = forum.Title,
         Description = forum.Description
     });
 }
Ejemplo n.º 7
0
 public async Task Add(Data.Models.Forum forum)
 {
     _context.Add(forum);
     await _context.SaveChangesAsync();
 }
Ejemplo n.º 8
0
 public Task Create(Data.Models.Forum forum)
 {
     throw new NotImplementedException();
     //return new Task(_context.Forums.Add(forum));
 }
Ejemplo n.º 9
0
 private ForumListingModel BuildForumListing(Post post)
 {
     Data.Models.Forum forum = post.Forum;
     return(BuildForumListing(forum));
 }
Ejemplo n.º 10
0
 public Task Create(Data.Models.Forum forum)
 {
     throw new NotImplementedException();
 }