Untitled

mail@pastecode.io avatarunknown
csharp
17 days ago
3.0 kB
1
Indexable
Never
    public async Task<FlightProductResponseModel> FlightProductSearch(FlightProductRequestDto request)
    {
        var req = new FlightProductRequestModel
        {
            Xmlns = "http://www.peakwork.net/pws/2010/03",
            AuthKey = _settings.AuthKey, //"d26550a768d59a8e63a1d9f4a432359e",
            Lang = request.Lang,
            Currency = request.Currency,
            OnRequestBookable = "true",
            TransferIncluded = "0",
            PricesByPax = "1",
            PriceType = "discount",
            ShowAsLocalTime = "1",
            ShowSegments = "true",
            ResultsTotal = "300",
            ShowingResultsFrom = request.Filters.Paging?.ShowingResultsFrom ?? "0",
            ResultsPerPage = request.Filters.Paging?.ResultsPerPage ?? "15", 
            TravelPeriod = new TravelPeriod
            {
                DurationAppliance = "flight",
                DepartureDate = request.DepartureDate == null ? "" : request.DepartureDate.Value.ToString("yyyy-MM-dd"),
                ReturnDate = request.ReturnDate == null ? "" : request.ReturnDate.Value.ToString("yyyy-MM-dd"),
                Duration = BaseRequestMapper.CheckDurationDate(request.DepartureDate, request.ReturnDate),
                DepartureMaxTime = request.Filters.Departure?.MaxTime == null
                    ? ""
                    : request.Filters.Departure?.MaxTime.Value.ToString(),
                DepartureMinTime = request.Filters.Departure?.MinTime == null
                    ? ""
                    : request.Filters.Departure?.MinTime.Value.ToString(),
                ReturnMaxTime = request.Filters.Return?.MaxTime == null
                    ? ""
                    : request.Filters.Return?.MaxTime.Value.ToString(),
                ReturnMinTime = request.Filters.Return?.MinTime == null
                    ? ""
                    : request.Filters.Return?.MinTime.Value.ToString()
            },
            Travellers = request.Guests.GetGuests(),
            Flight = new SearchFlight
            {
                DepartureAirportCodeList = request.DepartureAirportCodeList,
                ArrivalAirportCodeList = request.ArrivalAirportCodeList,
                StopOver = request.StopOver
            }
        };
        if (!string.IsNullOrEmpty(request.Filters.MinPrice))
        {
            req.MinPrice = new MinPrice
            {
                Amount = request.Filters.MinPrice
            };
        }
        if (!string.IsNullOrEmpty(request.Filters.MaxPrice))
        {
            req.MaxPrice = new MaxPrice
            {
                Amount = request.Filters.MaxPrice
            };
        }
        string str = XmlSerializeHelper<FlightProductRequestModel>.SerializeToObject(req);
        var callSlug = Helpers.Helpers.GetEnumDescription(HUBCallSlugs.FlightProduct);
        var res = await _client.PostAsync<FlightProductResponseModel>(BaseUrlHub + callSlug, str);

        return res;
    }