private async Task <bool> GetDataFromMystifly(List <Domain.Rootobject> list, Models.Rootobject model, string key) { //bool isAdded = await AddSupplierDetailsToRequestObject(model, this._SupplierCodeMystyfly); // SupplierAgencyDetails supplierDetails = supplierAgencyServices.GetBasicDetailsOfMystifly(model.CommonRequestSearch.AgencyCode, "T"); //SupplierAgencyDetails supplierDetails = agenciesBasicDetails.GetBasicDetailsOfMystifly(model.CommonRequestSearch.AgencyCode, "T"); SupplierAgencyDetails supplierDetails = await agenciesBasicDetails.GeBasicDetailsOfSupplier(model.CommonRequestSearch.AgencyCode, SupplierCode.MIS001.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; SearchFlightsMystifly requestModel = new SearchFlightsMystifly(); 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 strData = string.Empty; string reqUri = ConficBase.GetConfigAppValue(ReqUrlMystyfly); bool isFetchedFromDb = false; strData = await GetSupplierResponseFromDb(model, SupplierCode.MIS001.ToString(), key); string req = JsonConvert.SerializeObject(model); if (string.IsNullOrEmpty(strData)) { // var result = await partnerClient.GetMystiflyData(baseUri, reqUri, model); var result = await partnerClient.GetMystiflyData(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(SupplierCodeMystyfly), key); } return(true); } } } return(false); }
public async Task <ResponsePackage> GetMystiflyData(string baseUri, string reqUri, SearchFlightsMystifly 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); } } }