Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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;
                }
            }
        }