private static bool ExecuteAndWaitInternal(QueueJob job, TextBox textbox)
{
bool queueJobCompleted = false;
JobState[] jobStateToMarkAsProcessed =
{
JobState.Canceled, JobState.CorrelationBlocked, JobState.Failed,
JobState.FailedNotBlocking, JobState.Success,
};
Log.WriteVerbose(new SourceInfo(), textbox,
"Current Queue job State:{0}, Percent Complete:{1}, Job Type:{2}", job.JobState,
job.PercentComplete, job.MessageType);
JobState jobState = ProjContext.WaitForQueue(job, 3);
if (job.IsNull())
{
//Server returned a null object probably the job is completed and CSOM doesnt know about the job anymore.
queueJobCompleted = true;
}
if (jobStateToMarkAsProcessed.Contains(jobState))
{
LogStatus(job, textbox);
queueJobCompleted = true;
}
else
{
queueJobCompleted = false;
}
return queueJobCompleted;
}