示例#1
0
        private void bw_Login(object sender, DoWorkEventArgs e)
        {
            var    bw = sender as BackgroundWorker;
            string error;

            if (Thread.CurrentThread.Name == null)
            {
                Thread.CurrentThread.Name = "BackupLogin";
            }

            Properties.Settings.Default.OnlineBackupEmail = tbEmail.Text;
            Properties.Settings.Default.Save();

            var token = new ItemSynchronizer(_playerItemDao, string.Empty, GlobalSettings.RemoteBackupServer, null)
                        .Login(tbEmail.Text, out error);

            if (!string.IsNullOrEmpty(token))
            {
                Properties.Settings.Default.OnlineBackupToken = token;
                Properties.Settings.Default.Save();
                bw.ReportProgress(1);
            }
            else
            {
                bw.ReportProgress(2, error);
            }
        }
示例#2
0
        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            var s = new ItemSynchronizer(_playerItemDao, Properties.Settings.Default.OnlineBackupToken, GlobalSettings.RemoteBackupServer, null);

            s.Logout();
            backupEmailLabel.Text = "";
            Properties.Settings.Default.LastOnlineBackup     = 0;
            Properties.Settings.Default.OnlineBackupVerified = false;
            Properties.Settings.Default.OnlineBackupToken    = string.Empty;
            Properties.Settings.Default.Save();
            _enableOnlineBackups(false);
            OnlineBackupsActive = false;
        }
 private void EnableOnlineBackups(bool enable) {
     if (enable) {
         if (_itemSynchronizer == null) {
             _itemSynchronizer = new ItemSynchronizer(
                 _playerItemDao, 
                 Settings.Default.OnlineBackupToken, 
                 GlobalSettings.RemoteBackupServer, 
                 OnlineBackupAuthFailureHandler);
             _itemSynchronizer.Start();
         }
     } else {
         _itemSynchronizer?.Dispose();
         _itemSynchronizer = null;
     }
 }
示例#4
0
        // TODO: Create a background worker which every 10 seconds checks for online verification status
        private void bw_verify(object sender, DoWorkEventArgs e)
        {
            var bw   = sender as BackgroundWorker;
            var sync = new ItemSynchronizer(_playerItemDao, string.Empty, GlobalSettings.RemoteBackupServer, null);

            Stopwatch sw = new Stopwatch();

            sw.Start();

            while (!bw.CancellationPending)
            {
                if (sw.ElapsedMilliseconds > 10 * 1000)
                {
                    if (sync.Verify(Properties.Settings.Default.OnlineBackupToken))
                    {
                        bw.ReportProgress(3);
                        return;
                    }
                    sw.Restart();
                }
                Thread.Sleep(10);
            }
        }
 private void OnlineBackupAuthFailureHandler() {
     Logger.Warn("Online backup failed due to an authentication failure.");
     _itemSynchronizer?.Dispose();
     _itemSynchronizer = null;
 }