コード例 #1
0
        private async Task <bool> GetDataFromPython(List <Domain.Rootobject> list, Models.Rootobject model, string key)
        {
            string strData = string.Empty;
            //SupplierAgencyDetails supplierDetails = agenciesBasicDetails.GetBasicDetailsOfPyton(model.CommonRequestSearch.AgencyCode, "T");
            SupplierAgencyDetails supplierDetails = await agenciesBasicDetails.GeBasicDetailsOfSupplier(model.CommonRequestSearch.AgencyCode, SupplierCode.PYT001.ToString(), "T");

            if (supplierDetails != null)
            {
                supplierDetails.AgencyCode = model.CommonRequestSearch.AgencyCode;
                List <SupplierAgencyDetails> supplierAgencyDetails = new List <SupplierAgencyDetails>();
                supplierAgencyDetails.Add(supplierDetails);
                // model.SupplierAgencyDetails = supplierAgencyDetails;
                // string baseUri = model.SupplierAgencyDetails.FirstOrDefault().BaseUrl;

                SearchFlightsPyton requestModel = new SearchFlightsPyton();
                requestModel.cabin = model.cabin;
                requestModel.CommonRequestSearch          = model.CommonRequestSearch;
                requestModel.Currency                     = model.Currency;
                requestModel.IsRefundable                 = model.IsRefundable;
                requestModel.Maxstopquantity              = model.Maxstopquantity;
                requestModel.NonStop                      = model.NonStop;
                requestModel.OriginDestinationInformation = model.OriginDestinationInformation;
                requestModel.PassengerTypeQuantity        = model.PassengerTypeQuantity;
                requestModel.PreferenceLevel              = model.PreferenceLevel;
                requestModel.PreferredAirline             = model.PreferredAirline;
                requestModel.PricingSource                = model.PricingSource;
                requestModel.RequestOption                = model.RequestOption;
                requestModel.Target   = model.Target;
                requestModel.Triptype = model.Triptype;
                requestModel.SupplierAgencyDetails = supplierAgencyDetails;
                string baseUri = supplierDetails.BaseUrl;

                string reqUri = ConficBase.GetConfigAppValue(ReqUrlPython);

                bool isFetchedFromDb = false;
                strData = await GetSupplierResponseFromDb(model, SupplierCode.PYT001.ToString(), key);

                if (string.IsNullOrEmpty(strData))
                {
                    //  string strData1 = JsonConvert.SerializeObject(model);
                    var result = await partnerClient.GetPytonData(baseUri, reqUri, requestModel);

                    strData         = JsonConvert.SerializeObject(result.Data);
                    isFetchedFromDb = true;
                }
                Domain.Rootobject partnerResponseEntity = JsonConvert.DeserializeObject <Domain.Rootobject>(strData);
                if (partnerResponseEntity != null)
                {
                    if (partnerResponseEntity.fareMasterPricerTravelBoardSearchReply.flightIndex != null && partnerResponseEntity.fareMasterPricerTravelBoardSearchReply.flightIndex.ToList().Count() > 0)
                    {
                        list.Add(partnerResponseEntity);
                        if (isFetchedFromDb)
                        {
                            AddSearchDetails(model, strData, ConficBase.GetConfigAppValue(SupplierCodePython), key);
                        }

                        return(true);
                    }
                }
            }
            return(false);
        }
コード例 #2
0
ファイル: PartnerClient.cs プロジェクト: fardeencs/WebApi2
        public async Task <ResponsePackage> GetPytonData(string baseUri, string reqUri, SearchFlightsPyton message)
        {
            ResponsePackage responsePackage = new ResponsePackage();

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(baseUri);
                client.DefaultRequestHeaders.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                string requestObject = JsonConvert.SerializeObject(message);
                using (HttpResponseMessage Res = await client.PostAsJsonAsync(reqUri, message))
                {
                    if (Res.IsSuccessStatusCode)
                    {
                        var partnerResponse = Res.Content.ReadAsStringAsync().Result;
                        responsePackage = JsonConvert.DeserializeObject <ResponsePackage>(partnerResponse);
                    }
                    return(responsePackage);
                }
            }
        }