예제 #1
0
        public async Task <TravelConnect.Models.Responses.AirlineRS> AirlineLookup(string code)
        {
            try
            {
                var result = await _SabreConnector.SendRequestAsync("/v1/lists/utilities/airlines",
                                                                    "airlinecode=" + code, false);

                Models.AirlineRS rs = JsonConvert.DeserializeObject <Models.AirlineRS>(result);

                if (rs.AirlineInfo?.FirstOrDefault() == null)
                {
                    return(null);
                }

                return(new TravelConnect.Models.Responses.AirlineRS
                {
                    Code = rs.AirlineInfo.FirstOrDefault().AirlineCode,
                    Name = rs.AirlineInfo.FirstOrDefault().AirlineName
                });
            }
            catch (Exception ex)
            {
                var currentMethod  = System.Reflection.MethodBase.GetCurrentMethod();
                var fullMethodName = currentMethod.DeclaringType.FullName + "." + currentMethod.Name;

                _LogService.LogException(ex, fullMethodName);

                return(null);
            }
        }
예제 #2
0
        public async Task <CreatePnrRS> CreatePnrAsync(CreatePnrRQ request)
        {
            try
            {
                string r = JsonConvert.SerializeObject(ConvertToCreatePassNamenRecordRQ(request),
                                                       Formatting.None, new JsonSerializerSettings
                {
                    NullValueHandling = NullValueHandling.Ignore,
                    DateFormatString  = "yyyy-MM-ddTHH:mm:ss"
                });

                string result = await
                                _SabreConnector.SendRequestAsync("/v2.0.0/passenger/records?mode=create", r, true);

                CreatePassNameRecordRS rs =
                    JsonConvert.DeserializeObject <CreatePassNameRecordRS>(result);

                return(ConvertToCreatePnrRS(rs));
            }
            catch
            {
                return(new CreatePnrRS
                {
                    Status = "Failed"
                });
            }
        }
예제 #3
0
        private async Task <AirportAutocompleteRS> SubmitGetAirportAutocompleteAsync(string query)
        {
            var result = await _SabreConnector.SendRequestAsync("/v1/lists/utilities/geoservices/autocomplete",
                                                                "query=" + query + "&category=AIR&limit=30", false);

            result = result.Replace("category:AIR", "categoryAIR");

            AutocompleteRS rs = JsonConvert.DeserializeObject <AutocompleteRS>(result);

            AirportAutocompleteRS autocompleteRs = new AirportAutocompleteRS()
            {
                AirportsRS = new System.Collections.Generic.List <AirportRS>()
            };

            foreach (var doc in rs.Response.grouped.categoryAIR.doclist.docs)
            {
                autocompleteRs.AirportsRS.Add(new AirportRS
                {
                    Code         = doc.id,
                    Name         = doc.name,
                    IataCityCode = doc.iataCityCode,
                    CityName     = doc.city,
                    CountryCode  = doc.country,
                    CountryName  = doc.countryName,
                });
            }

            return(autocompleteRs);
        }
예제 #4
0
        public async Task <FlightSearchRS> AirLowFareSearchAsync(FlightSearchRQ request)
        {
            try
            {
                string result = await
                                _SabreConnector.SendRequestAsync("/v3.2.0/shop/flights?mode=live&limit=200&offset=1&enabletagging=true",
                                                                 JsonConvert.SerializeObject(ConvertToAirLowFareSearchRQ(request),
                                                                                             Formatting.None, new JsonSerializerSettings
                {
                    NullValueHandling = NullValueHandling.Ignore,
                    DateFormatString  = "yyyy-MM-ddTHH:mm:ss"
                }), true);

                AirLowFareSearchRS rs = JsonConvert.DeserializeObject <AirLowFareSearchRS>(result);

                return(ConvertToSearchRS(rs));
            }
            catch
            {
                return(null);
            }
        }