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()); } }
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()); } }