Ejemplo n.º 1
0
        private bool CheckIsSortStrategyHaveTimeFrame(ISortPostsStrategy sortPostsStrategy)
        {
            var isHaveTimeFrame = false;

            if (sortPostsStrategy is BaseTimeDependentPostSortingStrategy)
            {
                isHaveTimeFrame = true;
            }

            return(isHaveTimeFrame);
        }
Ejemplo n.º 2
0
        public async Task <IEnumerable <Post> > GetAllSortedByAsync(ISortPostsStrategy sortPostsStrategy)
        {
            var sortedPosts = await sortPostsStrategy
                              .GetSortedPosts()
                              .Include(p => p.Subreddit)
                              .Include(p => p.Author)
                              .Include(p => p.Comments)
                              .Include(p => p.Votes)
                              .ToListAsync();

            return(sortedPosts);
        }
Ejemplo n.º 3
0
        public PostsViewModel MapPostsViewModelForQuest(
            IEnumerable <Post> posts,
            PostSortType selectedSortType,
            ISortPostsStrategy sortStrategy,
            TimeFrameType selectedTimeFrameType)
        {
            var postModels = this.MapPostConciseViewModels(posts);
            var model      = new PostsViewModel
            {
                Posts        = postModels,
                PostSortType = selectedSortType
            };

            var isHaveTimeFrame = CheckIsSortStrategyHaveTimeFrame(sortStrategy);

            if (isHaveTimeFrame)
            {
                model.PostTimeFrameType = selectedTimeFrameType;
            }

            return(model);
        }
Ejemplo n.º 4
0
        public async Task <IEnumerable <Post> > GetByKeyWordsSortedByAsync(string[] keyWords, ISortPostsStrategy sortPostsStrategy)
        {
            var sortedPosts = sortPostsStrategy.GetSortedPosts();
            var posts       = await sortedPosts
                              .Where(p => keyWords.Any(kw => p.Title.ToLower().Contains(kw.ToLower())))
                              .Include(p => p.Subreddit)
                              .Include(p => p.Author)
                              .Include(p => p.Comments)
                              .Include(p => p.Votes)
                              .ToListAsync();

            return(posts);
        }
Ejemplo n.º 5
0
        public async Task <IEnumerable <Post> > GetBySubredditSortedBy(string subredditId, ISortPostsStrategy sortPostsStrategy)
        {
            var sortedPosts = await sortPostsStrategy
                              .GetSortedPosts()
                              .Where(p => p.SubredditId == subredditId)
                              .Include(p => p.Subreddit)
                              .Include(p => p.Author)
                              .Include(p => p.Comments)
                              .Include(p => p.Votes)
                              .ToListAsync();

            return(sortedPosts);
        }
Ejemplo n.º 6
0
        public async Task <IEnumerable <Post> > GetBySubcribedUserSortedByAsync(string userId, ISortPostsStrategy sortPostsStrategy)
        {
            var sortedPosts = await sortPostsStrategy
                              .GetSortedPosts()
                              .Where(p => p.Subreddit.SubscribedUsers.Any(su => su.UserId == userId))
                              .Include(p => p.Subreddit)
                              .Include(p => p.Author)
                              .Include(p => p.Comments)
                              .Include(p => p.Votes)
                              .ToListAsync();

            return(sortedPosts);
        }