//Изменен состояние синхронизации void sinchronize_OnChangeSinchronizeStatus(Sinchronize sender, SinchronizeStatus status) { if (this.InvokeRequired) { this.BeginInvoke(new ChangeSinchronizeStatus(sinchronize_OnChangeSinchronizeStatus), new object[] { sender, status }); return; } switch (status) { case SinchronizeStatus.SinchronizeStarted: // начало синхронизации notifyIcon.Text = "Sinchosaur\nИдет синхронизация"; progressForm =new ProgressForm(sender.SinchronizeFileProgressInfo) ; notifyIcon.Icon = Resurces.package_update; timerSinchronize.Enabled = false; logger.Info("Синхронизация начата"); break; case SinchronizeStatus.SinchronizeFinished: // если синхронизация закончена progressForm.Dispose(); notifyIcon.Icon = Resurces.package_ok; timerSinchronize.Enabled = true; logger.Info("Синхронизация завершена"); break; case SinchronizeStatus.ServerNotAvailable: // сервер не доступен notifyIcon.Text = "Sinchosaur\nСервер не доступен"; progressForm.Dispose(); notifyIcon.Icon = Resurces.package_bad; timerSinchronize.Enabled = true; logger.Trace("Сервер не доступен"); break; case SinchronizeStatus.NoFilesChanges: // нет изменений notifyIcon.Text = "Sinchosaur\nВсе файлы синхронизированы"; notifyIcon.Icon = Resurces.package_ok; timerSinchronize.Enabled = true; logger.Trace("Все файлы синхронизированы"); break; case SinchronizeStatus.GetServerFilesList: // Получение списка файлов на сервере timerSinchronize.Enabled = false; progressForm.Dispose(); break; case SinchronizeStatus.UserNotExist: // Такой пользователь не существует на сервере timerSinchronize.Enabled = false; notifyIcon.Icon = Resurces.package_bad; notifyIcon.ShowBalloonTip(200, "Sinchosaur", "Такой пользователь не существует", ToolTipIcon.Info); logger.Warn("Такой пользователь не существует"); SettingForm settingsForm = new SettingForm(); settingsForm.Disposed += new EventHandler(settingsForm_Deactivate); settingsForm.Activate(); settingsForm.Show(); break; case SinchronizeStatus.ServerUrlNotCorrect: // Такой пользователь не существует на сервере timerSinchronize.Enabled = false; notifyIcon.Icon = Resurces.package_bad; notifyIcon.ShowBalloonTip(200, "Sinchosaur", "Указан не корректный ip-адрес сервера", ToolTipIcon.Info); logger.Warn("Указан не корректный ip-адрес сервера"); settingsForm = new SettingForm(); settingsForm.Disposed += new EventHandler(settingsForm_Deactivate); settingsForm.Activate(); settingsForm.Show(); break; } }
//-------------------------------------------------------------------------------- //-------------------------------------------------------------------------------- private void buttonDownload_Click(object sender, EventArgs e) { if (listUserEvents.SelectedItems.Count == 0) MessageBox.Show("Вы должны выбрать файл!"); else { ListViewItem item = listUserEvents.SelectedItems[0]; string fileName = item.SubItems[1].Text; SaveFileDialog dlg = new SaveFileDialog() { RestoreDirectory = true, OverwritePrompt = true, Title = "Сохранить как...", FileName = fileName }; if (dlg.ShowDialog() == DialogResult.OK) { if (!string.IsNullOrEmpty(dlg.FileName)) { SinchronizeFileProgressInfo.File = new MyFile { Name = fileName, Path = dlg.FileName, Size = Convert.ToInt64(item.SubItems[5].Text), IsDirectory = false, }; selectedFileId = Convert.ToInt32(item.SubItems[6].Text); progressForm = new ProgressForm(SinchronizeFileProgressInfo); backgroundDownloader.RunWorkerAsync(SinchronizeFileProgressInfo.File); } } } }