/// <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); }