protected override CachedTask <FoodResponse> GetData(bool force, CancellationToken token) { if (!force) { return(CachedTask.NoNewData <FoodResponse>()); } var request = new FoodRequest { Language = CultureInfo.CurrentUICulture.TwoLetterISOLanguageName, MealTime = MealTime, Date = MealDate, UserName = _credentials.UserName }; Func <Task <FoodResponse> > getter = () => _menuService.GetMenusAsync(request, token); if (MealDate.Date == DateTime.Now.Date) { return(CachedTask.Create(getter, MealTime.GetHashCode(), DateTime.Now.Date.AddDays(1))); } return(CachedTask.DoNotCache(getter)); }
protected override CachedTask <ScheduleResponse> GetData(bool force, CancellationToken token) { if (!force) { return(CachedTask.NoNewData <ScheduleResponse>()); } Func <Task <ScheduleResponse> > getter = () => _requestHandler.ExecuteAsync(() => { var request = new ScheduleRequest { Language = CultureInfo.CurrentUICulture.TwoLetterISOLanguageName, WeekStart = WeekDate }; return(_isaService.GetScheduleAsync(request, token)); }); if (DateTime.Now >= WeekDate && (DateTime.Now - WeekDate).TotalDays < DaysInWeek) { // cache ID must be non-zero so that other requests don't think this can be used as a placeholder return(CachedTask.Create(getter, 1, WeekDate.AddDays(DaysInWeek))); } return(CachedTask.DoNotCache(getter)); }