in App/src/Events-TenantUserApp/Controllers/HomeController.cs [46:104]
public async Task<IActionResult> Index()
{
try
{
var tenantsModel = await _catalogRepository.GetAllTenants();
if (tenantsModel != null)
{
//get the venue name for each tenant
foreach (var tenant in tenantsModel)
{
VenueModel venue = null;
String tenantStatus = _utilities.GetTenantStatus(tenant.TenantId);
if (tenantStatus == "Online")
{
try
{
venue = await _tenantRepository.GetVenueDetails(tenant.TenantId);
}
catch (Microsoft.Azure.SqlDatabase.ElasticScale.ShardManagement.ShardManagementException ex)
{
if (ex.ErrorCode == Microsoft.Azure.SqlDatabase.ElasticScale.ShardManagement.ShardManagementErrorCode.MappingDoesNotExist)
{
//Fix mapping irregularities - trust local shard map
_utilities.ResolveMappingDifferences(tenant.TenantId);
//Get venue details if tenant is online
String updatedTenantStatus = _utilities.GetTenantStatus(tenant.TenantId);
if (updatedTenantStatus == "Online")
{
venue = await _tenantRepository.GetVenueDetails(tenant.TenantId);
}
}
}
catch (Exception ex)
{
_logger.LogError(0, ex, "Error in getting all tenants in Events Hub");
return View("Error", ex.Message);
}
}
if (venue != null)
{
tenant.VenueName = venue.VenueName;
tenant.TenantName = venue.DatabaseName;
}
}
return View(tenantsModel);
}
}
catch (Exception ex)
{
_logger.LogError(0, ex, "Error in getting all tenants in Events Hub");
return View("Error", ex.Message);
}
return View("Error");
}