Exemple #1
0
        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());
        }
Exemple #2
0
        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());
        }
Exemple #3
0
        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());
        }
Exemple #4
0
        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());
        }
Exemple #5
0
        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());
        }