Esempio n. 1
0
        protected override async void OnBackgroundActivated(BackgroundActivatedEventArgs args)
        {
            BackgroundTaskDeferral deferral = args.TaskInstance.GetDeferral();

            BackgroundTaskHelper.Current.IsRunning = true;

            try
            {
                if (!await viewModel.Api.IsAuthorized())
                {
                    return;
                }

                if (args.TaskInstance.Task.Name == BackgroundTaskHelper.TimerBackgroundTaskBuilderName)
                {
                    Settings.Current.SyncTimerTime = DateTime.Now;
                    await BackgroundTaskHelper.Current.Start(viewModel.Syncs, viewModel.Api);
                }

                Queue <SyncPairHandler> syncs = BackgroundTaskHelper.Current.Queue;
                while (syncs.Count > 0)
                {
                    SyncPairHandler handler = syncs.Dequeue();
                    await handler.Start();

                    SyncPair sync;
                    if (!handler.IsTestRun && handler.State == SyncPairHandlerState.Finished &&
                        viewModel.Syncs.TryFirst(s => s.Token == handler.Token, out sync))
                    {
                        sync.Result = handler.NewResult.ToArray();
                    }
                }
            }
            catch (Exception e)
            {
                Settings.Current.OnSyncException(e);
            }
            finally
            {
                BackgroundTaskHelper.Current.IsRunning = false;

                SaveSyncs();
                deferral.Complete();
            }
        }
Esempio n. 2
0
 private void BackgroundTaskHelper_AddedHandler(object sender, SyncPairHandler e)
 {
     handlers[e.Token].Output = e;
 }
Esempio n. 3
0
        private void IbnHandlerDetails_Click(object sender, RoutedEventArgs e)
        {
            SyncPairHandler handler = (SyncPairHandler)((FrameworkElement)sender).DataContext;

            Frame.Navigate(typeof(SyncPairHandlingPage), handler);
        }