private static RegionToType[] BuildRegionsToTypes(IEnumerable <Country> eanCountries, IReadOnlyDictionary <long, int> eanIdsToIds, int typeOfRegionCountryId, int creatorId ) { var regionsToTypes = new Queue <RegionToType>(); foreach (var eanCountry in eanCountries) { if (!eanIdsToIds.TryGetValue(eanCountry.CountryID, out var id)) { continue; } var regionToType = new RegionToType { Id = id, ToId = typeOfRegionCountryId, CreatorId = creatorId }; regionsToTypes.Enqueue(regionToType); } return(regionsToTypes.ToArray()); }
protected RegionToType[] BuildRegionsToTypes(IEnumerable <IHaveRegionId> eanEntities, IReadOnlyDictionary <long, int> eanIdsToIds, int typeOfRegionId, int subClassId, int creatorId ) { var regionsToTypes = new Queue <RegionToType>(); Parallel.ForEach(eanEntities, eanEntity => { if (!eanIdsToIds.TryGetValue(eanEntity.RegionID, out var id)) { return; } var regionToType = new RegionToType { Id = id, ToId = typeOfRegionId, SubClassId = subClassId, CreatorId = creatorId }; lock (LockMe) { regionsToTypes.Enqueue(regionToType); } }); return(regionsToTypes.ToArray()); }
private static RegionToType[] BuildRegionsToTypes(IEnumerable <AirportCoordinates> eanAirportsCoordinates, IReadOnlyDictionary <long, int> eanAirportIdsToIds, int typeOfRegionAirportId, int subClasAirportId, int creatorId ) { var regionsToTypes = new Queue <RegionToType>(); foreach (var entity in eanAirportsCoordinates) { if (!eanAirportIdsToIds.TryGetValue(entity.AirportID, out var id)) { continue; } var regionToType = new RegionToType { Id = id, ToId = typeOfRegionAirportId, SubClassId = subClasAirportId, CreatorId = creatorId }; regionsToTypes.Enqueue(regionToType); } return(regionsToTypes.ToArray()); }
protected RegionToType[] BuildRegionsToTypes( ICollection <long> regionsEanIds, IReadOnlyDictionary <long, int> eanIdsToIds, int typeOfRegionId, int subClassId, int creatorId ) { var regionsToTypes = new Queue <RegionToType>(); foreach (var regionEanId in regionsEanIds) { if (!eanIdsToIds.TryGetValue(regionEanId, out var id)) { continue; } var regionToType = new RegionToType { Id = id, ToId = typeOfRegionId, SubClassId = subClassId, CreatorId = creatorId }; regionsToTypes.Enqueue(regionToType); } return(regionsToTypes.ToArray()); }
private static RegionToType[] BuildRegionsToTypes(IEnumerable <ParentRegion> parentRegions, IReadOnlyDictionary <long, int> eanIdsToIds, IReadOnlyDictionary <string, int> namesToTypeIds, IReadOnlyDictionary <string, int> namesToSubClassIds, int creatorId ) { var regionIds = new HashSet <long>(); var regionsToTypes = new Queue <RegionToType>(); foreach (var parentRegion in parentRegions) { if (!regionIds.Contains(parentRegion.RegionID) && eanIdsToIds.TryGetValue(parentRegion.RegionID, out var id) && namesToTypeIds.TryGetValue(parentRegion.RegionType, out var toId)) { var regionToType = new RegionToType { Id = id, ToId = toId, CreatorId = creatorId }; var subClassName = GetSubClassName(parentRegion.SubClass); if (!string.IsNullOrEmpty(subClassName) && namesToSubClassIds.TryGetValue(parentRegion.SubClass, out var subClassId)) { regionToType.SubClassId = subClassId; } regionsToTypes.Enqueue(regionToType); regionIds.Add(parentRegion.RegionID); } if (regionIds.Contains(parentRegion.ParentRegionID) || !eanIdsToIds.TryGetValue(parentRegion.ParentRegionID, out var pId) || !namesToTypeIds.TryGetValue(parentRegion.ParentRegionType, out var pToId)) { continue; } { var regionToType = new RegionToType { Id = pId, ToId = pToId, CreatorId = creatorId }; regionsToTypes.Enqueue(regionToType); regionIds.Add(parentRegion.ParentRegionID); } } return(regionsToTypes.ToArray()); }