private static void UpdateRegionVmSizeMappings(IEnumerable <AzureCatalogue> azureCatalogueResult) { var cmpWapDb = new CmpWapDb(); var cmpWapRegions = cmpWapDb.FetchAzureRegionList(onlyActiveOnes: false).ToList(); var cmpWapVmSizes = cmpWapDb.FetchVmSizeInfoList(onlyActiveOnes: false).ToList(); var newMappings = new List <AzureRegionVmSizeMapping>(); try { foreach (var regionInCatalogue in azureCatalogueResult) { foreach (var vmSize in regionInCatalogue.VmSizes) { //We need to get the IDs to make the mapping object. Query the VmSize and Region tables to get them. var vmSizeToMap = cmpWapVmSizes.FirstOrDefault(x => string.Equals(vmSize.name, x.Name, StringComparison.InvariantCultureIgnoreCase)); var regionToMap = cmpWapRegions.FirstOrDefault(y => string.Equals(regionInCatalogue.RegionName.Replace(" ", string.Empty), y.Name.Replace(" ", string.Empty), StringComparison.InvariantCultureIgnoreCase)); if (vmSizeToMap == null || regionToMap == null) { continue; //something's wrong here if we reach this. } var newMapping = new AzureRegionVmSizeMapping { AzureRegionId = regionToMap.AzureRegionId, VmSizeId = vmSizeToMap.VmSizeId, IsActive = true }; newMappings.Add(newMapping); } } if (newMappings.Any()) { cmpWapDb.SetRegionVmSizeMappingsByBatch(newMappings); } } catch (Exception ex) { throw new Exception("Exception caught in UpdateRegionVmSizeMappings: " + ex.ToString()); } }