public async Task <PostsViewModel> GetOrderedPostsBySubredditAsync( string subredditId, IRequestCookieCollection requestCookies) { var dbSubreddit = await this.redditCloneUnitOfWork.Subreddits .GetByIdAsync(subredditId); if (dbSubreddit == null) { return(null); } var postSortType = this.cookieService.GetPostSortTypeFromCookieOrDefault(requestCookies); var postTimeFrameType = this.cookieService.GetPostTimeFrameTypeFromCookieOrDefault(requestCookies); var timeFrame = TimeFrameFactory.GetTimeFrame(postTimeFrameType); var sortPostsStrategy = SortPostsStartegyFactory .GetSortPostsStrategy(this.redditCloneUnitOfWork, timeFrame, postSortType); var dbPosts = await this.redditCloneUnitOfWork.Posts .GetBySubredditSortedBy(subredditId, sortPostsStrategy); var model = this.postMapper.MapPostsViewModelForQuest( dbPosts, postSortType, sortPostsStrategy, postTimeFrameType); return(model); }
public async Task <PostsViewModel> GetOrderedPostsAsync( ClaimsPrincipal user, IRequestCookieCollection requestCookies, IResponseCookies responseCookies) { var postSortType = this.cookieService.GetPostSortTypeFromCookieOrDefault(requestCookies); var postTimeFrameType = this.cookieService.GetPostTimeFrameTypeFromCookieOrDefault(requestCookies); var timeFrame = TimeFrameFactory.GetTimeFrame(postTimeFrameType); var sortPostsStrategy = SortPostsStartegyFactory .GetSortPostsStrategy(this.redditCloneUnitOfWork, timeFrame, postSortType); var dbUserId = this.userManager.GetUserId(user); var dbPosts = await this.redditCloneUnitOfWork.Posts .GetBySubcribedUserSortedByAsync(dbUserId, sortPostsStrategy); if (dbPosts.Count() == 0) { dbPosts = await this.redditCloneUnitOfWork.Posts.GetAllSortedByAsync(sortPostsStrategy); } var model = this.postMapper .MapPostsViewModelForSignInUser(dbPosts, dbUserId, postSortType, sortPostsStrategy, postTimeFrameType); return(model); }
public async Task <PostsViewModel> GetOrderedPostsByKeyWordsAsync( string[] keyWords, PostSortType sortType, TimeFrameType timeFrameType) { var timeFrame = TimeFrameFactory.GetTimeFrame(timeFrameType); var sortStrategy = SortPostsStartegyFactory .GetSortPostsStrategy(this.redditCloneUnitOfWork, timeFrame, sortType); var filteredPosts = await this.redditCloneUnitOfWork.Posts .GetByKeyWordsSortedByAsync(keyWords, sortStrategy); var model = this.postMapper.MapPostsViewModelForQuest(filteredPosts, sortType, sortStrategy, timeFrameType); return(model); }
public async Task <PostsViewModel> GetOrderedPostsAsync(IRequestCookieCollection requestCookies) { var postSortType = this.cookieService.GetPostSortTypeFromCookieOrDefault(requestCookies); var postTimeFrameType = this.cookieService.GetPostTimeFrameTypeFromCookieOrDefault(requestCookies); var timeFrame = TimeFrameFactory.GetTimeFrame(postTimeFrameType); var sortPostsStrategy = SortPostsStartegyFactory .GetSortPostsStrategy(this.redditCloneUnitOfWork, timeFrame, postSortType); var dbPosts = await this.redditCloneUnitOfWork.Posts .GetAllSortedByAsync(sortPostsStrategy); var model = this.postMapper.MapPostsViewModelForQuest(dbPosts, postSortType, sortPostsStrategy, postTimeFrameType); return(model); }