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);
                    }
                }
            }
        }
示例#2
0
 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);
                }
            }
        }