/// <summary>
///
/// </summary>
/// <param name="distribution"></param>
/// <returns></returns>
private async Task WaitUntilDistributionIsDeployedAsync(Distribution distribution)
{
const string DEPLOYED_STATUS = "deployed";
using (var client = new AmazonCloudFrontClient(cfConfigurationProvider.AccessKey, cfConfigurationProvider.SecretKey, cfConfigurationProvider.RegionEndpoint))
{
loggerProvider.GetLogger().Debug($"Waiting for CloudFront to deploy. [Cname: {cfConfigurationProvider.CNAME}] [Status: {distribution.Status}]");
var currentStatus = distribution.Status.ToLower();
do
{
await Task.Delay(15000);
var getDistributionResponse = await client.GetDistributionAsync(new GetDistributionRequest(distribution.Id));
currentStatus = getDistributionResponse.Distribution.Status;
loggerProvider.GetLogger().Debug($"Checking CloudFront status. [Cname: {cfConfigurationProvider.CNAME}] [Current Status: {currentStatus}]");
}
while (!currentStatus.IsEqualIgnoreCase(DEPLOYED_STATUS));
}
}