Beispiel #1
0
        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));
        }
Beispiel #2
0
        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;
        }