void exportJobLogMenuItem_Click(object sender, RoutedEventArgs e) { object selectedItem = this.SyncHistoryListBox.SelectedItem; if (selectedItem != null) { string jobId = this.syncRecordDict[(ListBoxItem)selectedItem]; SyncSetting syncSetting = SyncSetting.LoadSyncSettingByJobId(jobId); if (syncSetting != null) { System.Windows.Forms.SaveFileDialog dlg = new System.Windows.Forms.SaveFileDialog(); dlg.Title = "选择保存文件"; dlg.Filter = "Log (*.log)|*.log"; System.Windows.Forms.DialogResult dr = dlg.ShowDialog(); if (dr.Equals(System.Windows.Forms.DialogResult.OK)) { string logSaveFilePath = dlg.FileName; LogExporter.exportLog( Path.Combine(this.myAppPath, "logs", jobId, "success.log"), Path.Combine(this.myAppPath, "logs", jobId, "error.log"), Path.Combine(this.myAppPath, "logs", jobId, "skipped.log"), Path.Combine(this.myAppPath, "logs", jobId, "exists.log"), Path.Combine(this.myAppPath, "logs", jobId, "not_overwrite.log"), Path.Combine(this.myAppPath, "logs", jobId, "overwrite.log"), logSaveFilePath); } } } }
private void listBoxItem_MouseDoubleClick(object sender, MouseButtonEventArgs e) { object selectedItem = this.SyncHistoryListBox.SelectedItem; if (selectedItem != null) { string jobId = this.syncRecordDict[(ListBoxItem)selectedItem]; SyncSetting syncSetting = SyncSetting.LoadSyncSettingByJobId(jobId); if (syncSetting != null) { this.mainWindow.GotoSyncSettingPage(syncSetting); } else { Log.Error("load sync setting by id failed, " + jobId); } } }
void deleteJobMenuItem_Click(object sender, RoutedEventArgs e) { object selectedItem = this.SyncHistoryListBox.SelectedItem; if (selectedItem != null) { string jobId = this.syncRecordDict[(ListBoxItem)selectedItem]; SyncSetting syncSetting = SyncSetting.LoadSyncSettingByJobId(jobId); if (syncSetting != null) { MessageBoxResult mbr = MessageBox.Show( string.Format("确认删除同步任务 {0} -> {1} 么?", syncSetting.SyncLocalDir, syncSetting.SyncTargetBucket), "删除任务", MessageBoxButton.YesNo, MessageBoxImage.Question); if (mbr.Equals(MessageBoxResult.Yes)) { //delete job related files string[] filesToDelete = { Path.Combine(this.myAppPath, "logs", jobId, "error.log"), Path.Combine(this.myAppPath, "logs", jobId, "exists.log"), Path.Combine(this.myAppPath, "logs", jobId, "not_overwrite.log"), Path.Combine(this.myAppPath, "logs", jobId, "overwrite.log"), Path.Combine(this.myAppPath, "logs", jobId, "skipped.log"), Path.Combine(this.myAppPath, "logs", jobId, "success.log"), Path.Combine(this.myAppPath, "synclog", jobId + ".log.db"), Path.Combine(this.myAppPath, "dircache", jobId + ".done") }; foreach (string path in filesToDelete) { try { File.Delete(path); } catch (Exception ex) { Log.Error(string.Format("delete file {0} failed due to {1}", path, ex.Message)); } } string[] foldersToDelete = { Path.Combine(this.myAppPath, "logs", jobId) }; foreach (string path in foldersToDelete) { try { Directory.Delete(path); } catch (Exception ex) { Log.Error(string.Format("delete folder {0} failed due to {1}", path, ex.Message)); } } try { SyncRecord.DeleteSyncJobById(jobId, this.jobsDbPath); } catch (Exception ex) { Log.Error("delete sync job by id error, " + ex.Message); } this.SyncHistoryListBox.Items.Remove(selectedItem); this.syncRecordDict.Remove((ListBoxItem)selectedItem); } } else { Log.Error("load sync setting by id failed, " + jobId); } } }