示例#1
0
        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();
        }
示例#2
0
        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();
        }