public void DownloadFiles(List <JobManagerFile> fileList) { foreach (JobManagerFile vo in fileList) { _DirectorWrapper.DownloadOutputDocuments(vo.jobID); string path = Path.Combine(_DirectorWrapper.DirectorSettings.OutputDocumentsPathAfterCompleted, vo.jobID.ToString().Replace("-", "")); string[] files = Directory.GetFiles(path); if (files.Length == 1) { vo.resultContent = File.ReadAllBytes(files.FirstOrDefault()); vo.OutputFileName = Path.GetFileName(files.FirstOrDefault()); } foreach (string file in files) { File.Delete(file); } Directory.Delete(path, true); } }
public static void DoWork() { bool result = false; List <JobDownloadRecord> jobList = null; while (true) { if (_stopWork) { break; } jobList = GetJobIdsForDownload(); if (jobList != null && jobList.Count > 0) { foreach (JobDownloadRecord jobRecord in jobList) { if (_DirectorWrapper != null) { try { Adlib.Director.DirectorWSAWrapper.DirectorWSA.JobDetailResponse response = _DirectorWrapper.GetJobDetails(jobRecord.JobId); if (response != null) { if (response.JobStatus == Adlib.Director.DirectorWSAWrapper.DirectorWSA.JobStatus.CompletedSuccessful) { result = _DirectorWrapper.DownloadOutputDocuments(jobRecord.JobId, jobRecord.UseFileRepository, 2 /*2Mb chunks*/); if (result == false) { _DirectorWrapper.LogManager().Info(string.Format("Failed to download outputs for job with JobId: {0}. See log for details.", jobRecord.JobId)); } else { _DirectorWrapper.LogManager().Info(string.Format("Outputs were successfully downloaded for job with JobId: {0}.", jobRecord.JobId)); } RemoveJobIdFromDownload(jobRecord.JobId); } else if (response.JobStatus == Adlib.Director.DirectorWSAWrapper.DirectorWSA.JobStatus.CompletedCancelled || response.JobStatus == Adlib.Director.DirectorWSAWrapper.DirectorWSA.JobStatus.CompletedFailed || response.JobStatus == Adlib.Director.DirectorWSAWrapper.DirectorWSA.JobStatus.CompletedResubmissionFailed) { _DirectorWrapper.LogManager().Info(string.Format("Removing job with JobId: {0} from download list because it's status is {1}", jobRecord.JobId, response.JobStatus.ToString())); RemoveJobIdFromDownload(jobRecord.JobId); } } else { _DirectorWrapper.LogManager().Error(string.Format("Can't find Job with JobId: {0} to download outputs. Deleting job from queue.", jobRecord.JobId)); RemoveJobIdFromDownload(jobRecord.JobId); } } catch (Exception e) { } } if (_stopWork) { break; } System.Threading.Thread.Sleep(1000); } } if (_stopWork) { break; } System.Threading.Thread.Sleep(5000); } }