public static async Task Show(bool force = false) { if (!force) { //两小时以内不重复更新。 if (Setting.LastUpdateTime.AddHours(2) > DateTime.Now) { return; } //每日更新内容显示四小时 if (Setting.LastDayResultTime.AddHours(4) > DateTime.Now) { return; } } if (Setting.ShowDayResult && Setting.LastDayResultTime < DateTime.Today) { var res = await GankService.GetDayResult(DateTime.Today, false); if (res.all.Any()) { UpdateBadgeGlyph(res.all.Count().ToString()); UpdateTileAndShowToastByResults(res); return; } } ClearBadge(); await UpdateTileByPhotos(); }
public async Task InitData(bool useCache = true) { IsLoading = true; ErrorMsg = ""; try { HistoryDates = await GankService.GetHistoryDatesAsync(); if (HistoryDates == null || HistoryDates.Length <= 0) { ErrorMsg = "获取天数失败。"; return; } CurrentDate = CurrentDate ?? HistoryDates.First(); await loadDataByDate(CurrentDate.Value, useCache); if (CurrentDate >= DateTime.Today) { Common.TileAndToast.ClearBadge(); } } catch (Exception e) { ErrorMsg = $"获取数据失败:{e.Message}"; } finally { //Views.Busy.SetBusy(false); IsLoading = false; } }
private async Task loadDataByDate(DateTime date, bool useCache) { DayResults.Clear(); HeaderImage = " "; ErrorMsg = ""; IsLoading = true; if (!HistoryDates.Contains(date.Date)) { ErrorMsg = $"当日无数据:{date:yyyy-MM-dd}"; return; } //Views.Busy.SetBusy(true, "请稍候..."); try { var res = await GankService.GetDayResult(date, useCache); res.all.Where(i => !(i is 福利)).ForEach(DayResults.Add); HeaderImage = res.福利?.FirstOrDefault()?.url; } catch (Exception e) { ErrorMsg = $"获取{date:yyyy-MM-dd}数据失败:{Environment.NewLine}{e.Message}"; } finally { //Views.Busy.SetBusy(false); CurrentDate = date;//.ToString("yyyy-MM-dd"); IsLoading = false; } }
private async void ContentDialog_SecondaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args) { PostingProgressBar.Visibility = Visibility.Visible; IsSecondaryButtonEnabled = false; var deferral = args.GetDeferral(); SettingsService.Instance.Publisher = who; var res = await GankService.PostGank(url, desc, who, type #if DEBUG , debug : true #endif ); PostingProgressBar.Visibility = Visibility.Collapsed; if (res.error) { args.Cancel = true; MsgText.Text = res.msg; } else { MsgText.Text = "提交成功"; await Task.Delay(1500); } IsSecondaryButtonEnabled = true; deferral.Complete(); }
public async Task <IEnumerable <福利> > GetPagedItemsAsync(int pageIndex, int pageSize, CancellationToken cancellationToken = default(CancellationToken)) { var res = await GankService.GetRandomCategoryItemsAsync <福利>(pageSize); if (res == null || !res.Any()) { throw new NoMoreItemsException(); } return(res); }
public async Task <IEnumerable <福利> > GetPagedItemsAsync(int pageIndex, int pageSize, CancellationToken cancellationToken = default(CancellationToken)) { //Views.Busy.SetBusy(true,$"加载第{pageIndex + 1}页数据。"); var res = await GankService.GetFuliResult(pageSize, pageIndex + 1); //res.ForEach(async f => await ImageCache.Instance.PreCacheAsync(new Uri(f.url))); if (res == null || !res.Any()) { throw new NoMoreItemsException(); } return(res); }
public async Task <IEnumerable <T> > GetPagedItemsAsync(int pageIndex, int pageSize, CancellationToken cancellationToken = default(CancellationToken)) { //Random r = new Random(); //if (r.Next(100) % 3 == 0) // throw new Exception(); var res = await GankService.GetCategoryItems <T>(pageSize, pageIndex + 1); if (res == null || !res.Any()) { throw new NoMoreItemsException(); } return(res); }
public static async Task UpdateTileByPhotos(IEnumerable <福利> fulis = null) { try { fulis = fulis ?? await GankService.GetRandomCategoryItemsAsync <福利>(5); var updater = getTileUpdater(fulis.Count() >= 5); foreach (var f in fulis.Sample(5)) { string xml; xml = getFuliTileXML(f); var doc = loadXml(xml); updater.Update(new TileNotification(doc)); } Setting.LastUpdateTime = DateTime.Now; } catch (Exception e) { Debug.WriteLine(e.Message); } }
public async Task <IEnumerable <T> > GetPagedItemsAsync(int pageIndex, int pageSize, CancellationToken cancellationToken = default(CancellationToken)) { //Views.Busy.SetBusy(true,$"加载第{pageIndex + 1}页数据。"); //try //{ var res = await GankService.GetRandomCategoryItemsAsync <T>(pageSize); if (res == null || !res.Any()) { throw new NoMoreItemsException(); } return(res); //} //catch (Exception e) //{ // Debug.WriteLine($"获取{typeof(T)}数据失败:" + e.Message); // return new T[0]; //} //finally //{ // //Views.Busy.SetBusy(false); //} }