public async Task <List <string> > ExecuteQueryAsync(GetDepartureStationsQuery query, CancellationToken cancellationToken) { var readModels = await _readStore.FindAsync(rm => true, cancellationToken); var stations = readModels.SelectMany(x => x.Items) .Where(x => x.DepartureDate > query.DepartureTime1) .Where(x => x.DepartureDate < query.DepartureTime2) .Select(x => x.DepartureStation) .ToList(); return(stations); }
public async Task ShouldGetDepartureStation() { //Arrange var journeys = new JourneysBuilder().BuildJourneys(); var selectJourneysCommand = new SelectJourneysCommand(BookingId.New, journeys); await CommandBus.PublishAsync(selectJourneysCommand, CancellationToken.None); //Act var query = new GetDepartureStationsQuery(DateTime.Today, DateTime.Today.AddDays(3)); var stations = await _queryHandler.ExecuteQueryAsync(query, CancellationToken.None); //Assert stations.Should().NotBeEmpty(); }