public SynchronizeViewModel(TabSyncService syncService, MessageHub hub)
        {
            this.ProgressIndicator       = new ProgressIndicator();
            SystemTray.ProgressIndicator = this.ProgressIndicator;
            SyncService           = syncService;
            SyncService.Progress += (sender, i) =>
            {
                Progress       = i;
                DownloadedTabs = SyncService.Downloaded;
                UploadedTabs   = SyncService.Uploaded;
            };

            SyncService.ProgressMessage += (sender, i) =>
                                           SetProgressIndicator(!IsSyncNotRunning, i.GetMessage());

            SyncService.Complete += (o, e) =>
            {
                hub.RaiseTabsDownloaded();
                hub.RaiseTabsRefreshed();
                IsSyncNotRunning = true;
                SetProgressIndicator(true, String.Format(
                                         AppResources.Synchronize_TabProcessed, DownloadedTabs, UploadedTabs));
                SystemTray.ProgressIndicator.IsIndeterminate = false;
            };
            IsSyncNotRunning = true;
        }