public MapDataStore(IMapDataProvider mapDataProvider, IPathResolver pathResolver, ITrace trace) { _mapDataProvider = mapDataProvider; _mapDataLoader = new MapDataLoader(pathResolver, trace); _pathResolver = pathResolver; _trace = trace; _mapDataProvider .ObserveOn(Scheduler.ThreadPool) .Subscribe(value => { // we have map data in store. if (String.IsNullOrEmpty(value.Item2)) { _mapDataLoader.OnNext(value.Item1); } else { Add(_mapDataStorageType, value.Item2, value.Item1.Stylesheet, value.Item1.QuadKey) .Subscribe(progress => { }, () => _mapDataLoader.OnNext(value.Item1)); } }); _mapDataLoader.Subscribe <MapData>(u => _dataObservers.ForEach(o => o.OnNext(u))); _mapDataLoader.Subscribe <Tile>(t => _tileObservers.ForEach(o => o.OnNext(t))); }
public MapDataStore(IMapDataProvider mapDataProvider, IMapDataLibrary mapDataLibrary) { _mapDataProvider = mapDataProvider; _mapDataLibrary = mapDataLibrary; _mapDataProvider .ObserveOn(Scheduler.ThreadPool) .Subscribe(value => { // we have map data in store. if (String.IsNullOrEmpty(value.Item2)) { _mapDataLibrary.Get(value.Item1, _dataObservers); } else { Add(_mapDataStorageType, value.Item2, value.Item1.Stylesheet, value.Item1.QuadKey) .Subscribe(progress => { }, () => _mapDataLibrary.Get(value.Item1, _dataObservers)); } }); }
public MapDataStore(IMapDataProvider mapDataProvider, IMapDataLibrary mapDataLibrary) { _mapDataLibrary = mapDataLibrary; _mapDataProvider = mapDataProvider; _mapDataProvider .ObserveOn(Scheduler.ThreadPool) .Subscribe(value => { // We have map data in store. if (String.IsNullOrEmpty(value.Item2)) { _mapDataLibrary .Get(value.Item1, _dataObservers) .Subscribe(_ => _tileObservers.ForEach(t => t.OnNext(value.Item1))); } else { // NOTE store data in the first registered store AddTo(_storageKeys.First(), value.Item2, value.Item1.Stylesheet, value.Item1.QuadKey, value.Item1.CancelationToken) .Subscribe(progress => { }, () => _mapDataLibrary.Get(value.Item1, _dataObservers)); } }); }