private async void Submit() { try { bool splitSpectra = checkBox1.Checked; int spectraToSplit = (int)numericUpDown1.Value; submitToolStripMenuItem.Enabled = false; dataGridView1.Enabled = false; string jobName = textBox1.Text; if (DtaFiles.Count == 0) { throw new ArgumentNullException("DTA Files", "Please supply at least one DTA file for the submission"); } if (string.IsNullOrWhiteSpace(jobName)) { throw new ArgumentNullException("Job Name", "Please supply a job name for the submission"); } DatabaseFile[] dataBases = checkedListBox1.CheckedItems.Cast<DatabaseFile>().ToArray(); if (dataBases.Length == 0) { throw new ArgumentNullException("Database", "Please selected at least one database for the submission"); } UserModFile userModFile = null; string userModFilePath = textBox2.Text; if (!string.IsNullOrWhiteSpace(userModFilePath)) { if (!System.IO.File.Exists(userModFilePath)) { throw new FileNotFoundException("Unable to locate user mod file", userModFilePath); } userModFile = new UserModFile(userModFilePath); } string remoteJobDirectory = _connection.CreateDirectory(_connection.CondorFolder + jobName); if (userModFile != null) { SetStatusLabel("Uploading User Mod File..."); await _connection.PutFileAsync(userModFile, remoteJobDirectory); } List<DtaFile> dtaFiles = new List<DtaFile>(); if (splitSpectra) { SetStatusLabel("Splitting Dta Files to contain " + spectraToSplit + " spectra each..."); Task t = new Task(() => { foreach (DtaFile dtaFile in DtaFiles.Distinct()) { dtaFiles.AddRange(dtaFile.Split(spectraToSplit)); } }); t.Start(); await t; } else { dtaFiles = DtaFiles.ToList(); } SetStatusLabel("Uploading Files to " + remoteJobDirectory + "..."); await _connection.PutFilesAsync(dtaFiles.Distinct(), remoteJobDirectory); SetStatusLabel("Uploading Submit File..."); CondorSubmitFile submitFile = new CondorSubmitFile(dtaFiles, userModFile, dataBases); submitFile.WriteToDisk(); await _connection.PutFileAsync(submitFile, remoteJobDirectory, "submitFile.condor"); if (splitSpectra) { foreach (DtaFile dtaFile in dtaFiles) { System.IO.File.Delete(dtaFile.FilePath); } } System.IO.File.Delete(submitFile.FilePath); string result = _connection.RunSubmission(remoteJobDirectory, "submitFile.condor"); SetStatusLabel(result.Replace("\n"," ")); } catch (Exception e) { MessageBox.Show(e.Message, "Error Submitting Job", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); SetStatusLabel("Error"); } finally { dataGridView1.Enabled = true; toolStripStatusLabel1.Text = ""; submitToolStripMenuItem.Enabled = true; UpdateProgress(0); } }
private async void Submit() { try { bool splitSpectra = checkBox1.Checked; int spectraToSplit = (int)numericUpDown1.Value; submitToolStripMenuItem.Enabled = false; dataGridView1.Enabled = false; string jobName = textBox1.Text; if (DtaFiles.Count == 0) { throw new ArgumentNullException("DTA Files", "Please supply at least one DTA file for the submission"); } if (string.IsNullOrWhiteSpace(jobName)) { throw new ArgumentNullException("Job Name", "Please supply a job name for the submission"); } DatabaseFile[] dataBases = checkedListBox1.CheckedItems.Cast <DatabaseFile>().ToArray(); if (dataBases.Length == 0) { throw new ArgumentNullException("Database", "Please selected at least one database for the submission"); } UserModFile userModFile = null; string userModFilePath = textBox2.Text; if (!string.IsNullOrWhiteSpace(userModFilePath)) { if (!System.IO.File.Exists(userModFilePath)) { throw new FileNotFoundException("Unable to locate user mod file", userModFilePath); } userModFile = new UserModFile(userModFilePath); } string remoteJobDirectory = _connection.CreateDirectory(_connection.CondorFolder + jobName); if (userModFile != null) { SetStatusLabel("Uploading User Mod File..."); await _connection.PutFileAsync(userModFile, remoteJobDirectory); } List <DtaFile> dtaFiles = new List <DtaFile>(); if (splitSpectra) { SetStatusLabel("Splitting Dta Files to contain " + spectraToSplit + " spectra each..."); Task t = new Task(() => { foreach (DtaFile dtaFile in DtaFiles.Distinct()) { dtaFiles.AddRange(dtaFile.Split(spectraToSplit)); } }); t.Start(); await t; } else { dtaFiles = DtaFiles.ToList(); } SetStatusLabel("Uploading Files to " + remoteJobDirectory + "..."); await _connection.PutFilesAsync(dtaFiles.Distinct(), remoteJobDirectory); SetStatusLabel("Uploading Submit File..."); CondorSubmitFile submitFile = new CondorSubmitFile(dtaFiles, userModFile, dataBases); submitFile.WriteToDisk(); await _connection.PutFileAsync(submitFile, remoteJobDirectory, "submitFile.condor"); if (splitSpectra) { foreach (DtaFile dtaFile in dtaFiles) { System.IO.File.Delete(dtaFile.FilePath); } } System.IO.File.Delete(submitFile.FilePath); string result = _connection.RunSubmission(remoteJobDirectory, "submitFile.condor"); SetStatusLabel(result.Replace("\n", " ")); } catch (Exception e) { MessageBox.Show(e.Message, "Error Submitting Job", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); SetStatusLabel("Error"); } finally { dataGridView1.Enabled = true; toolStripStatusLabel1.Text = ""; submitToolStripMenuItem.Enabled = true; UpdateProgress(0); } }