private void sync_SyncComplete(object sender, LocalSyncCompleteEventArgs e) { try { if (!Dispatcher.CheckAccess()) { SyncCompleteDelegate d = sync_SyncComplete; Dispatcher.Invoke(d, sender, e); } else { Topmost = false; var sync = (PNSync)sender; sync.SyncComplete -= sync_SyncComplete; switch (e.Result) { case LocalSyncResult.None: PNMessageBox.Show(PNLang.Instance.GetMessageText("sync_complete", "Syncronization completed successfully"), PNStrings.PROG_NAME, MessageBoxButton.OK); DialogResult = false; break; case LocalSyncResult.Reload: PNMessageBox.Show(PNLang.Instance.GetMessageText("sync_complete_reload", "Syncronization completed successfully. The program has to be restarted for applying all changes."), PNStrings.PROG_NAME, MessageBoxButton.OK); PNData.UpdateTablesAfterSync(); DialogResult = true; break; case LocalSyncResult.AbortVersion: PNMessageBox.Show(PNLang.Instance.GetMessageText("diff_versions", "Current version of database is different from previously synchronized version. Synchronization cannot be performed."), PNStrings.PROG_NAME, MessageBoxButton.OK, MessageBoxImage.Exclamation); DialogResult = false; break; case LocalSyncResult.Error: DialogResult = false; break; } } } catch (Exception ex) { PNStatic.LogException(ex); } }