public async Task Index()

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");  

        }