public async Task <SubredditsViewModel> GetOrderedSubredditsFilterByKeyWordsAsync( string[] keyWords, SubredditSortType sortType) { var sortStrategy = SortSubredditStrategyFactory .GetSubredditSortStrategy(this.redditCloneUnitOfWork, sortType); var filteredSubreddits = await this.redditCloneUnitOfWork.Subreddits .GetByKeyWordsSortedByAsync(keyWords, sortStrategy); var model = new SubredditsViewModel() { SubrreditSortType = sortType, Subreddits = this.mapper.Map <IEnumerable <SubredditConciseViewModel> >(filteredSubreddits) }; return(model); }
public static ISubredditSortStrategy GetSubredditSortStrategy( IRedditCloneUnitOfWork unitOfWork, SubredditSortType postSortType) { switch (postSortType) { case SubredditSortType.New: return(new SortSubredditByNew(unitOfWork)); case SubredditSortType.Old: return(new SortSubredditByOld(unitOfWork)); case SubredditSortType.Top: return(new SortSubredditByTop(unitOfWork)); default: throw new InvalidEnumArgumentException(); } }
public async Task <SearchResultViewModel> GetSearchResultAsync( string[] keyWords, SubredditSortType subredditSortType, PostSortType postSortType, TimeFrameType postTimeFrameType) { var subredditModels = await this.questSubredditService .GetOrderedSubredditsFilterByKeyWordsAsync(keyWords, subredditSortType); var postModels = await this.questPostService .GetOrderedPostsByKeyWordsAsync(keyWords, postSortType, postTimeFrameType); var searchModel = new SearchResultViewModel { Subreddits = subredditModels, Posts = postModels, KeyWords = string.Join(" ", keyWords) }; return(searchModel); }