Example #1
0
 public static Task <ItineraryDto> UpdateItinerary(ItineraryDto itinerary)
 {
     return(PutObject("/Itinerary/Update", itinerary));
 }
        public async Task <Result <FlightSearchResponseDto> > SearchAsync(FlightSearchRequestDto request, CancellationToken cancellationToken)
        {
            if (request == null)
            {
                return(Result.ObjectValidationFail <FlightSearchResponseDto>("Invaid Request"));
            }

            if (!request.IsValid())
            {
                return(Result.ObjectValidationFail <FlightSearchResponseDto>(request.Validate()));
            }

            var flightSearchEngine = new FlightSearchEngine("skyscanner");


            var origin      = request.OriginLocation;
            var destination = request.DestinationLocation;

            cancellationToken.ThrowIfCancellationRequested();
            var result = await flightSearchEngine.SearchAsync(
                Settings.Skyscanner.APIKey,
                request.Markets,
                request.Currency,
                request.Locale,
                origin,
                destination,
                request.OutboundDate,
                request.InboundDate,
                int.Parse(request.Adults.GetEnumDescription()),
                int.Parse(request.Children.GetEnumDescription()),
                int.Parse(request.Infants.GetEnumDescription()),
                request.PriceMinFilter,
                request.PriceMaxFilter,
                request.MaxStopsFilter,
                request.FlightClass.GetEnumDescription(),
                request.SortType.GetEnumDescription(),
                request.SortOrder.GetEnumDescription(),
                request.OutboundDepartureTimeFromFilter,
                request.OutboundDepartureTimeToFilter,
                request.OutboundArrivalTimeFromFilter,
                request.OutboundArrivalTimeToFilter,
                request.InboundDepartureTimeFromFilter,
                request.InboundDepartureTimeToFilter,
                request.InboundArrivalTimeFromFilter,
                request.InboundArrivalTimeToFilter,
                cancellationToken).ConfigureAwait(false);


            var ItineraryDtos = new List <ItineraryDto>();

            foreach (Itinerary i in result.FilteredItineraries)
            {
                var itinerary = new ItineraryDto().CopyFrom(i);
                ItineraryDtos.Add(itinerary);
            }

            var response = new FlightSearchResponseDto(ItineraryDtos, request.Skip ?? 0, request.Take ?? 10, result.TotalResults);

            response.Request = request;

            return(Result.Ok(response));
        }
Example #3
0
        public static async Task <TripDto> AddTrip(string title, DateTime startDate, DateTime endDate, ItineraryDto itinerary)
        {
            TripDto trip = new TripDto
            {
                Title     = title,
                StartDate = startDate,
                EndDate   = endDate,
            };
            var result = await PutObject("/Trip/Create", trip);

            itinerary.TripId = result.Id;
            await CreateItinerary(itinerary);

            return(result);
        }