public static TimeSpan GetTimeFrame(TimeFrameType timeFrameType) { switch (timeFrameType) { case TimeFrameType.PastHour: return(TimeSpan.FromHours(1)); case TimeFrameType.PastDay: return(TimeSpan.FromDays(1)); case TimeFrameType.PastWeek: return(TimeSpan.FromDays(7)); case TimeFrameType.PastMonth: return(TimeSpan.FromDays(31)); case TimeFrameType.PastYear: return(TimeSpan.FromDays(365)); case TimeFrameType.AllTime: return(TimeSpan.FromDays(365 * 100)); default: throw new InvalidEnumArgumentException(); } }
public void ChangePostTimeFrameCookie(IResponseCookies responseCookies, TimeFrameType timeFrameType) { var timeFrameKey = WebConstants.CookieKeyPostTimeFrameType; var timeFrameValue = timeFrameType.ToString(); responseCookies.Append(timeFrameKey, timeFrameValue); }
public int Read() { int occurrenceCount = 0; string[] logContent = ReadFile().Split(new string[1] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); TimeFrameType timeType = (TimeFrameType)timeFrameId; foreach (string line in logContent) { var groups = Regex.Match(line, regex).Groups; if (groups.Count > 0) { string dateValue = groups["date"].Value; if (!string.IsNullOrEmpty(dateValue)) { DateTime eventUTCDate; DateTime inputTime = new DateTime(); DateTime.TryParseExact(dateValue, "dd/MMM/yyyy:HH:mm:ss zzz", System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat, System.Globalization.DateTimeStyles.AdjustToUniversal, out eventUTCDate); if (timeType == TimeFrameType.Hours) { inputTime = DateTime.Now.AddHours(-timeBack).ToUniversalTime(); if (eventUTCDate >= inputTime && eventUTCDate <= DateTime.Now.ToUniversalTime()) { if (groups["code"].Value.Trim() == search.Trim()) { occurrenceCount++; } } } else if (timeType == TimeFrameType.Date) { DateTime dateFrom = DateTime.ParseExact(dtFrom, dateFormat, System.Globalization.CultureInfo.InvariantCulture); DateTime dateTo = DateTime.ParseExact(dtTo, dateFormat, System.Globalization.CultureInfo.InvariantCulture); if (eventUTCDate >= dateFrom && eventUTCDate <= dateTo) { if (groups["code"].Value.Trim() == search.Trim()) { occurrenceCount++; } } } } } } return(occurrenceCount); }
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 IActionResult ChangeTimeFrame(string timeFrame) { TimeFrameType timeFrameType = TimeFrameType.AllTime; var isParseSuccessfull = Enum.TryParse(timeFrame, out timeFrameType); if (isParseSuccessfull) { this.cookieService.ChangePostTimeFrameCookie(this.Response.Cookies, timeFrameType); } else { this.AddStatusMessage(AlertConstants.ErrorMessageWrongParameter, AlertConstants.AlertTypeDanger); } return(this.Redirect("/")); }
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); }
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); }