public MemberLocationEventProcessor( ILogger <MemberLocationEventProcessor> logger, IEventSubscriber eventSubscriber, IEventEmitter eventEmitter, ILocationCache locationCache ) { this.logger = logger; this.subscriber = eventSubscriber; this.eventEmitter = eventEmitter; this.proximityDetector = new ProximityDetector(); this.locationCache = locationCache; this.subscriber.MemberLocationRecordedEventReceived += (mlre) => { var memberLocations = locationCache.GetMemberLocations(mlre.TeamID); ICollection <ProximityDetectedEvent> proximityEvents = proximityDetector.DetectProximityEvents(mlre, memberLocations, 30.0f); foreach (var proximityEvent in proximityEvents) { eventEmitter.EmitProximityDetectedEvent(proximityEvent); } locationCache.Put(mlre.TeamID, new MemberLocation { MemberID = mlre.MemberID, Location = new GpsCoordinate { Latitude = mlre.Latitude, Longitude = mlre.Longitude } }); }; }
public void EventProcessingRoundTrip() { MemberLocationRecordedEvent[] events = GenerateFakeEventList(); SubscribeToProximityEvents(); EnqueueEvents(events); bool receivedSignal = autoEvent.WaitOne(4000); Assert.True(receivedSignal); // Check with Redis to make sure we got all the locations. ILocationCache locationCache = (ILocationCache)testServer.Host.Services.GetService(typeof(ILocationCache)); IList <MemberLocation> team2Locations = locationCache.GetMemberLocations(teamId2); Assert.Equal(2, team2Locations.Count); IList <MemberLocation> team1Locations = locationCache.GetMemberLocations(teamId1); Assert.Equal(2, team1Locations.Count); channel.Close(); connection.Close(); Environment.Exit(0); }
public CacheManager(ILocationCache level1Cache, ILocationCache level2Cache, LocationCreator locationCreator, ILogger <CacheManager> logger) { this.level1Cache = level1Cache; this.level2Cache = level2Cache; this.locationCreator = locationCreator; this.logger = logger; }
public RealityController(ILocationCache locationCache, ILogger <RealityController> logger) { this.locationCache = locationCache; this.logger = logger; }
private LocationRepository GetItemUnderTest(ILocationApiClient apiClient, ILocationCache cache) { return(new LocationRepository(apiClient, cache)); }
public LocationRepository(ILocationApiClient apiClient, ILocationCache locationCache) { _apiClient = apiClient; _locationCache = locationCache; }
public LocationService(ILocationCache locationCache) { _locationCache = locationCache; }