/// <summary>
        /// Run the IJob on a delay
        /// </summary>
        public void Run(object sender, EventArgs e, object[] parameters)
        {
            try
            {
                this.m_jobStateManager.SetState(this, JobStateType.Running);

                AuditSubmission submission = new AuditSubmission(); // To reduce size only submit 2 at a time
                while (this.m_auditQueue.TryDequeue(out AuditData data))
                {
                    submission.Audit.Add(data); // Add to submission
                    if (submission.Audit.Count == 3)
                    {
                        ApplicationServiceContext.Current.GetService <IQueueManagerService>().Admin.Enqueue(submission, SynchronizationOperationType.Insert);
                        submission = new AuditSubmission();
                    }
                }

                this.m_jobStateManager.SetState(this, JobStateType.Completed);
            }
            catch (Exception ex)
            {
                this.m_tracer.TraceError("Error running audit dispatch: {0}", ex);
                this.m_jobStateManager.SetState(this, JobStateType.Aborted);
            }
        }
 /// <summary>
 /// Submits a diagnostic report.
 /// </summary>
 public void SubmitAudit(AuditSubmission submission)
 {
     this.Client.Post <AuditSubmission, object>("Audit", submission);
 }