in src/Assessment/BusinessCaseBuilder.cs [64:113]
private async Task<AssessmentPollResponse> PollBusinessCaseState(UserInput userInputObj)
{
int numberOfTries = 0;
AssessmentPollResponse pollResult = AssessmentPollResponse.Created;
while (numberOfTries < 25)
{
Thread.Sleep(60000);
try
{
pollResult = await new HttpClientHelper().PollBusinessCase(userInputObj, BusinessCaseInformationObj);
if (pollResult == AssessmentPollResponse.Error)
{
userInputObj.LoggerObj.LogInformation($"Polling for business case {BusinessCaseInformationObj.BusinessCaseName} resulted in non-retryable error");
numberOfTries += 1;
}
}
catch (OperationCanceledException)
{
throw;
}
catch (AggregateException aePollBizCase)
{
string errorMessage = "";
foreach (var e in aePollBizCase.Flatten().InnerExceptions)
{
if (e is OperationCanceledException)
throw e;
else
{
errorMessage = errorMessage + e.Message + " ";
}
}
userInputObj.LoggerObj.LogWarning($"Business case {BusinessCaseInformationObj.BusinessCaseName} polling failed: {errorMessage}");
}
catch (Exception ex)
{
userInputObj.LoggerObj.LogWarning($"Business case {BusinessCaseInformationObj.BusinessCaseName} polling failed: {ex.Message}");
}
if (pollResult == AssessmentPollResponse.Completed ||
pollResult == AssessmentPollResponse.OutDated ||
pollResult == AssessmentPollResponse.Invalid)
break;
}
userInputObj.LoggerObj.LogInformation($"Polling for business case {BusinessCaseInformationObj.BusinessCaseName} completed");
return pollResult;
}