Exemple #1
0
        public ParkAndRideNodeDao()
        {
            Framework.DomainModels.Persisters.IPersisterReader <IParkAndRideNode> reader =
                Global
                .ContainerDaySim.GetInstance <IPersistenceFactory <IParkAndRideNode> >()
                .Reader;

            IParkAndRideNodeCreator creator =
                Global
                .ContainerDaySim
                .GetInstance <IWrapperFactory <IParkAndRideNodeCreator> >()
                .Creator;

            Dictionary <int, HashSet <int> > zoneIdKeys   = new Dictionary <int, HashSet <int> >();
            Dictionary <int, HashSet <int> > parcelIdKeys = new Dictionary <int, HashSet <int> >();

            Dictionary <int, Framework.ShadowPricing.IParkAndRideShadowPriceNode> parkAndRideShadowPrices = ParkAndRideShadowPriceReader.ReadParkAndRideShadowPrices();

            foreach (IParkAndRideNode parkAndRideNode in reader)
            {
                IParkAndRideNodeWrapper node = creator.CreateWrapper(parkAndRideNode);
                int id = node.Id;

                _nodes.Add(id, node);

                int zoneId = node.ZoneId;

                if (!zoneIdKeys.TryGetValue(zoneId, out HashSet <int> zoneIdKey))
                {
                    zoneIdKey = new HashSet <int>();

                    zoneIdKeys.Add(zoneId, zoneIdKey);
                }

                zoneIdKey.Add(id);

                int parcelId = node.NearestParcelId;

                if (!parcelIdKeys.TryGetValue(parcelId, out HashSet <int> parcelIdKey))
                {
                    parcelIdKey = new HashSet <int>();

                    parcelIdKeys.Add(parcelId, parcelIdKey);
                }

                node.SetParkAndRideShadowPricing(parkAndRideShadowPrices);

                parcelIdKey.Add(id);
            }

            foreach (KeyValuePair <int, HashSet <int> > entry in zoneIdKeys)
            {
                _zoneIdKeys.Add(entry.Key, entry.Value.ToArray());
            }

            foreach (KeyValuePair <int, HashSet <int> > entry in parcelIdKeys)
            {
                _parcelIdKeys.Add(entry.Key, entry.Value.ToArray());
            }
        }
Exemple #2
0
        public ParkAndRideNodeDao()
        {
            var reader =
                Global
                .Kernel
                .Get <IPersistenceFactory <IParkAndRideNode> >()
                .Reader;

            var creator =
                Global
                .Kernel
                .Get <IWrapperFactory <IParkAndRideNodeCreator> >()
                .Creator;

            var zoneIdKeys   = new Dictionary <int, HashSet <int> >();
            var parcelIdKeys = new Dictionary <int, HashSet <int> >();

            var parkAndRideShadowPrices = ParkAndRideShadowPriceReader.ReadParkAndRideShadowPrices();

            foreach (var parkAndRideNode in reader)
            {
                var node = creator.CreateWrapper(parkAndRideNode);
                var id   = node.Id;

                _nodes.Add(id, node);

                var           zoneId = node.ZoneId;
                HashSet <int> zoneIdKey;

                if (!zoneIdKeys.TryGetValue(zoneId, out zoneIdKey))
                {
                    zoneIdKey = new HashSet <int>();

                    zoneIdKeys.Add(zoneId, zoneIdKey);
                }

                zoneIdKey.Add(id);

                var           parcelId = node.NearestParcelId;
                HashSet <int> parcelIdKey;

                if (!parcelIdKeys.TryGetValue(parcelId, out parcelIdKey))
                {
                    parcelIdKey = new HashSet <int>();

                    parcelIdKeys.Add(parcelId, parcelIdKey);
                }

                node.SetParkAndRideShadowPricing(parkAndRideShadowPrices);

                parcelIdKey.Add(id);
            }

            foreach (var entry in zoneIdKeys)
            {
                _zoneIdKeys.Add(entry.Key, entry.Value.ToArray());
            }

            foreach (var entry in parcelIdKeys)
            {
                _parcelIdKeys.Add(entry.Key, entry.Value.ToArray());
            }
        }