public async void Run(IBackgroundTaskInstance taskInstance) { // Patur procesu, kamēr darbina asinhronu kodu. BackgroundTaskDeferral deferral = taskInstance.GetDeferral(); var client = new ProperHttpClient(); foreach (Account account in Settings.GetAccounts()) { // Neskatoties uz SystemConditionType.InternetAvailable, kuru pieprasīja reģistrācijas brīdī, var gadīties, ka uzdevumu palaiž bez interneta savienojuma. // Tāpēc to šeit pārbauda. Un dara pirms katra izsaukuma, jo tie var būt tik ilgi, ka pa starpai atslēdz savienojumu. if (Network.Disconnected) { break; } #if !DEBUG if (account.RefreshDate == null || account.RefreshDate + account.RefreshInterval < DateTime.Now) try { #endif await account.SetBalance(client); #if !DEBUG } catch {} // Atļauj pamēģināt ar katru numuru. #endif } deferral.Complete(); }
private async void Refresh_Click(object sender, RoutedEventArgs e) { if (Network.Disconnected) { await new MessageDialog(DisplayResources.Strings.GetString("NetworkOffline")).ShowAsync(); return; } timer.Stop(); BottomAppBar.IsEnabled = false; var statusBar = StatusBar.GetForCurrentView(); statusBar.ProgressIndicator.Text = DisplayResources.Strings.GetString("Refreshing"); await statusBar.ProgressIndicator.ShowAsync(); for (int n = 0; n < app.Accounts.Count; n++) { list.ContainerFromIndex(n).SetValue(IsEnabledProperty, false); } var client = new ProperHttpClient(); for (int n = 0; n < app.Accounts.Count; n++) { await app.Accounts[n].SetBalance(client); list.ContainerFromIndex(n).SetValue(IsEnabledProperty, true); } BottomAppBar.IsEnabled = true; await statusBar.ProgressIndicator.HideAsync(); timer.Start(); }