public async Task <FlightAvailabilityResource> GetFlightAvailability(string departure)
        {
            var query = new DepartureStationQuery(departure);

            var flightAvailability = await _queryProcessor.ProcessAsync(query, CancellationToken.None);

            return(new FlightAvailabilityResource(Url, flightAvailability));
        }
        public async Task <List <FlightAvailabilityReadModel> > ExecuteQueryAsync(DepartureStationQuery query,
                                                                                  CancellationToken cancellationToken)
        {
            var index = _modelDescriptionProvider.GetReadModelDescription <FlightAvailabilityReadModel>().IndexName;

            var searchResponse = await _elasticClient.SearchAsync <FlightAvailabilityReadModel>(d => d
                                                                                                .RequestConfiguration(c => c
                                                                                                                      .AllowedStatusCodes((int)HttpStatusCode.NotFound))
                                                                                                .Index(index.Value)
                                                                                                .Query(q => q.QueryString(qs => qs
                                                                                                                          .Query(query.Departure))), cancellationToken);

            return(searchResponse.Documents.ToList());
        }
示例#3
0
        public async Task AfterAddFlightShouldAddToReadModel()
        {
            //Arrange
            var scenario = new AddFlightScenario(CommandBus);

            //Act
            await scenario.Execute();

            //Assert
            var query = new DepartureStationQuery("MEL");

            var flights = await QueryProcessor.ProcessAsync(query, CancellationToken.None);

            flights.Should().NotBeEmpty();
        }