public static ReprocessJobList GetGroupJobs(int reportGroupID) { ReprocessJobList retVal = new ReprocessJobList(); EMMADataSet.ReprocessJobDataTable table = new EMMADataSet.ReprocessJobDataTable(); lock (jobTableAdapter) { jobTableAdapter.FillByGroup(table, reportGroupID); } foreach (EMMADataSet.ReprocessJobRow row in table) { retVal.Add(new ReprocessJob(row)); } return retVal; }
private static void StoreJob(ReprocessJob jobData, bool delete) { EMMADataSet.ReprocessJobDataTable table = new EMMADataSet.ReprocessJobDataTable(); EMMADataSet.ReprocessJobRow row = null; bool newRow = false; int? newID = 0; try { if (jobData.ID != 0) { // See if we can find the existing job in the database. lock (jobTableAdapter) { jobTableAdapter.FillByID(table, jobData.ID); } row = table.FindByID(jobData.ID); // make sure we clear the items and results for that job. lock (itemTableAdapter) { itemTableAdapter.ClearByJob(jobData.ID); } lock (resultTableAdapter) { resultTableAdapter.ClearByJob(jobData.ID); } } if (row == null) { // We either couldn't find the existing job or we're dealing with a // new job. // Either way, we need to create a new row. row = table.NewReprocessJobRow(); newRow = true; } // Set the values for the job row itself and store it. row.JobDate = jobData.Date; row.StationID = jobData.StationID; row.GroupID = jobData.ReportGroupID; row.OwnerID = jobData.OwnerID; if (newRow) { lock (jobTableAdapter) { jobTableAdapter.StoreNew(row.JobDate, row.StationID, row.GroupID, row.OwnerID, ref newID); } } else { if (delete) { row.Delete(); } else { newID = row.ID; } lock (jobTableAdapter) { jobTableAdapter.Update(table); } } if (newID.HasValue) { // Store the items and results of the job. foreach (ReprocessItem item in jobData.SourceItems) { item.JobID = newID.Value; StoreItem(item); } foreach (ReprocessResult result in jobData.Results) { result.JobID = newID.Value; StoreResult(result, jobData.Date); } } } catch (Exception ex) { EMMAException emmaEx = ex as EMMAException; if (emmaEx == null) { throw new EMMADataException(ExceptionSeverity.Error, "Problem storing reprocessing job data", ex); } else { throw ex; } } }