public async Task <ItemsPage <Flight> > SearchFlightsAsync(FlightFilter filter) { FlightFilterEntity filterDal = _mapper.Map <FlightFilterEntity>(filter); if (filter.SearchFlightsBack) { filterDal.PageLimit = (int)Math.Floor(Convert.ToDecimal(filter.PageLimit / 2)); } ItemsPageEntity <FlightEntity> flightsDal = await _flightRepository.SearchFlightsAsync(filterDal); if (filter.SearchFlightsBack) { int?fromCityIdBuff = filterDal.FromCityId; filterDal.FromCityId = filterDal.ToCityId; filterDal.ToCityId = fromCityIdBuff; int?fromAirportIdBuff = filterDal.FromAirportId; filterDal.FromAirportId = filterDal.ToAirportId; filterDal.ToAirportId = fromAirportIdBuff; filterDal.DepartureDate = filter.DepartureBackDate; filterDal.ArrivalDate = filter.ArrivalBackDate; ItemsPageEntity <FlightEntity> flightsBackDal = await _flightRepository.SearchFlightsAsync(filterDal); flightsDal.Content = flightsDal.Content.Concat(flightsBackDal.Content).ToList(); } return(_mapper.Map <ItemsPage <Flight> >(flightsDal)); }
public async Task <ItemsPageEntity <FlightEntity> > SearchFlightsAsync(FlightFilterEntity filter) { using SqlConnection db = new SqlConnection(_dalSettings.ConnectionString); IEnumerable <PaginationFlightEntity> queryResult = await db.QueryAsync <PaginationFlightEntity>( "SearchFlights", new { FromAirportId = filter.FromAirportId, ToAirportId = filter.ToAirportId, FromCityId = filter.FromCityId, ToCityId = filter.ToCityId, DepartureDate = filter.DepartureDate?.Date, ArrivalDate = filter.ArrivalDate?.Date, TicketCount = filter.TicketCount, FinalBookType = BookType.Payed, BookExpirationTimeInSeconds = _bookingSettings.ExpirationTime.TotalSeconds, TimeUntilBookingAvailableInSeconds = _bookingSettings.TimeUntilBookingAvailable.TotalSeconds, CurrentPage = filter.CurrentPage, PageLimit = filter.PageLimit }, commandType : CommandType.StoredProcedure); if (!queryResult.Any()) { return(new ItemsPageEntity <FlightEntity>( new List <FlightEntity>(), 0 )); } int totalCount = queryResult.First().TotalCount; List <FlightEntity> flights = queryResult.Select(_mapper.Map <FlightEntity>).ToList(); return(new ItemsPageEntity <FlightEntity>( flights, totalCount )); }
public Task <ItemsPageEntity <FlightEntity> > SearchFlightsAsync(FlightFilterEntity filter) { throw new NotImplementedException(); }