public async Task <dto.PriceItinararyResponse> GetPriceItinerary(dto.SellJourneyByKeyRequestData sellJourneyByKeyRequestData) { var signature = !string.IsNullOrEmpty(await _sessionBag.Signature()) ? await _sessionBag.Signature() : await _userSessionService.GetAnonymousSharedSignature(); CleanSellJourneyByKeyRequestData(sellJourneyByKeyRequestData); var infantSegmentSSRRequests = await CreateSegmentSSRRequests(sellJourneyByKeyRequestData); var priceItineraryRequest = new ItineraryPriceRequest { SSRRequest = new SSRRequest { SegmentSSRRequests = infantSegmentSSRRequests, CurrencyCode = sellJourneyByKeyRequestData.CurrencyCode }, TypeOfSale = Mapper.Map <TypeOfSale>(sellJourneyByKeyRequestData.TypeOfSale), PriceItineraryBy = PriceItineraryBy.JourneyBySellKey, SellByKeyRequest = Mapper.Map <SellJourneyByKeyRequestData>(sellJourneyByKeyRequestData, m => m.AfterMap(SetFareTypes)) }; var stopWatch = _perfLogSettings.EnableNavApiLogging ? Stopwatch.StartNew() : null; var response = await _client.GetItineraryPriceAsync(new PriceItineraryRequest { ContractVersion = _navApiContractVer, MessageContractVersion = _navMsgContractVer, Signature = signature, EnableExceptionStackTrace = false, ItineraryPriceRequest = priceItineraryRequest }); //_navApiContractVer, false, //_navMsgContractVer, signature, priceItineraryRequest); if (_perfLogSettings.EnableNavApiLogging && stopWatch != null) { stopWatch.Stop(); var msecs = stopWatch.ElapsedMilliseconds; _logger.WriteTimedLog(msecs, "BookingManager.GetItineraryPriceAsync" + "|" + signature); } return(Mapper.Map <dto.PriceItinararyResponse>(response.Booking)); }
public static void GetPriceReturn(string signature, GetAvailabilityResponse response, string noofPassenger) { IBookingManager bookingManager = new BookingManagerClient(); DataTable flights = Table_Flights(); DataTable fare = Table_Fare(); foreach (JourneyDateMarket[] jdmArray in response.GetTripAvailabilityResponse.Schedules) { foreach (JourneyDateMarket jdm in jdmArray) { foreach (Journey journey in jdm.Journeys) { PriceItineraryRequest pir = new PriceItineraryRequest(); ItineraryPriceRequest ipr = new ItineraryPriceRequest(); ipr.PriceItineraryBy = PriceItineraryBy.JourneyBySellKey; ipr.SellByKeyRequest = new SellJourneyByKeyRequestData(); ipr.SellByKeyRequest.ActionStatusCode = "NN"; SellKeyList[] list = new SellKeyList[1]; list[0] = new SellKeyList(); list[0].JourneySellKey = journey.JourneySellKey; foreach (Segment segment in journey.Segments) { DataRow dr = flights.NewRow(); if (segment.Fares.Length > 0) { list[0].FareSellKey = segment.Fares[0].FareSellKey; dr["ShortDate"] = segment.STD.ToString("ddd MMM d yyyy"); dr["Date"] = segment.STD.ToShortDateString(); dr["From"] = segment.DepartureStation; dr["To"] = segment.ArrivalStation; dr["FlightNo"] = segment.FlightDesignator.FlightNumber; dr["STD"] = segment.STD.ToString("dd/MM/yyy hh:mm tt"); dr["STA"] = segment.STA.ToString("dd/MM/yyy hh:mm tt"); dr["BaseFare"] = segment.Fares[0].PaxFares[0].ServiceCharges[0].Amount; dr["TimeDuration"] = TimeDuration(segment.STD.ToString(), segment.STA.ToString()); flights.Rows.Add(dr); } } ipr.SellByKeyRequest.JourneySellKeys = list; int pax = Convert.ToInt16(noofPassenger);//+ Convert.ToInt16(page.child); ipr.SellByKeyRequest.PaxCount = Convert.ToSByte(pax); PaxPriceType[] priceTypes = new PaxPriceType[ipr.SellByKeyRequest.PaxCount]; for (int i = 0; i < ipr.SellByKeyRequest.PaxCount; i++) { priceTypes[i] = new PaxPriceType(); priceTypes[i].PaxType = "ADT"; priceTypes[i].PaxDiscountCode = string.Empty; } ipr.SellByKeyRequest.PaxPriceType = priceTypes; ipr.SellByKeyRequest.CurrencyCode = "INR"; ipr.SellByKeyRequest.LoyaltyFilter = LoyaltyFilter.MonetaryOnly; ipr.SellByKeyRequest.IsAllotmentMarketFare = false; pir.ItineraryPriceRequest = ipr; pir.Signature = signature; PriceItineraryResponse pire = bookingManager.GetItineraryPrice(pir); foreach (Journey j in pire.Booking.Journeys) { foreach (Segment segment in j.Segments) { foreach (BookingServiceCharge bsc in segment.Fares[0].PaxFares[0].ServiceCharges) { DataRow drr = fare.NewRow(); drr["FlightNo"] = segment.FlightDesignator.FlightNumber; drr["Heads"] = bsc.ChargeType.ToString() + bsc.ChargeCode.ToString(); drr["Amount"] = bsc.Amount; fare.Rows.Add(drr); } } } } } } foreach (DataRow dr in flights.Rows) { dr["TotalFare"] = TotalFare(fare, dr["FlightNo"].ToString()) * (Convert.ToDouble(noofPassenger.ToString())); } HttpContext.Current.Session["Rflights"] = flights; HttpContext.Current.Session["Rfare"] = fare; Logout(signature); }
public PriceItineraryRequest setPriceItineraryRequest(int numadt, int numchd, String faretype, String currency, GetAvailabilityResponse response, string sourceorg, string agentcode, int overnight) { PriceItineraryRequest priceitinrequest = new PriceItineraryRequest(); priceitinrequest.Signature = signature; ItineraryPriceRequest itinerarypricerequest = new ItineraryPriceRequest(); priceitinrequest.ItineraryPriceRequest = itinerarypricerequest; itinerarypricerequest.PriceItineraryBy = PriceItineraryBy.JourneyBySellKey;//get price itinerary by using JourneyWithSellKey TypeOfSale typeofsale = new TypeOfSale(); itinerarypricerequest.TypeOfSale = typeofsale; typeofsale.FareTypes = new string[1];// refers to RE or ST or JP wholesaler fares;-faretypes are governed by type of sale typeofsale.FareTypes[0] = faretype;// pass this back to the faretype parameter PriceJourneyRequestData pricerequest = new PriceJourneyRequestData(); SellJourneyByKeyRequestData sellkeyrequest = new SellJourneyByKeyRequestData(); itinerarypricerequest.SellByKeyRequest = sellkeyrequest; pricerequest.CurrencyCode = currency; pricerequest.PriceJourneys = new PriceJourney[1]; pricerequest.PriceJourneys[0] = new PriceJourney(); pricerequest.PaxCount = (short)(numadt + numchd); return null; }