SunSync.QuickStartPage.deleteJobMenuItem_Click C# (CSharp) Method

deleteJobMenuItem_Click() private method

private deleteJobMenuItem_Click ( object sender, RoutedEventArgs e ) : void
sender object
e System.Windows.RoutedEventArgs
return void
        void deleteJobMenuItem_Click(object sender, RoutedEventArgs e)
        {
            object selectedItem = this.SyncHistoryListBox.SelectedItem;
            if (selectedItem != null)
            {
                string jobId = this.syncRecordDict[(ListBoxItem)selectedItem];
                SyncSetting syncSetting = SyncRecord.LoadSyncSettingByJobId(jobId);
                if (syncSetting != null)
                {
                    MessageBoxResult mbr = MessageBox.Show(
                        string.Format("确认删除同步任务 {0} -> {1} 么?", syncSetting.LocalDirectory, syncSetting.TargetBucket), "删除任务",
                        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);
                }
            }
        }