private static void saveImportInfo(HttpContext context, ReservedPnr pnrContent, PNRPair associatePNR, OrderSource orderSource, PriceView patPrice, PriceView maxpatPrice, PassengerType passengerType) { bool fdSuccess = true; IEnumerable <FlightView> reservedFlights = ReserveViewConstuctor.GetQueryFlightView(pnrContent.Voyage.Segments, pnrContent.Voyage.Type, pnrContent.Passengers.First().Type, pnrContent.IsTeam, patPrice); if (maxpatPrice != null && maxpatPrice.Fare != 0 && pnrContent.Voyage.Type == ItineraryType.OneWay && passengerType == PassengerType.Adult) { var flight = reservedFlights.First(); if (flight.Fare != maxpatPrice.Fare && flight.Fare != 0 && (flight.BunkType == BunkType.Economic || flight.BunkType == BunkType.FirstOrBusiness)) { FareErrorLog fare = new FareErrorLog { Carrier = flight.AirlineCode, Departure = flight.Departure.Code, Arrival = flight.Arrival.Code, FlightDate = flight.Departure.Time.Date, Bunk = flight.BunkCode, Fare = patPrice.Fare, }; if (PNRHelper.RequireFD(reservedFlights)) { try { flight.Fare = patPrice.Fare = PriceCheckService.CheckFd(flight.AirlineCode, flight.Departure.Code, flight.Arrival.Code, flight.BunkCode, flight.Departure.Time); fare.IsTreatment = true; } catch (Exception ex) { LogService.SaveExceptionLog(ex, string.Format("{0}{1}{2}{3}({4})", flight.AirlineCode, flight.Departure.Code, flight.Arrival.Code, flight.BunkCode, flight.Departure.Time)); fare.IsTreatment = false; fdSuccess = false; } } else { fdSuccess = false; B3BEmailSender.SendFareError(fare, flight.Fare); } LogService.SaveFareErrorLog(fare); } } OrderView orderView = GetOrderView(orderSource, pnrContent, associatePNR, reservedFlights, passengerType); orderView.FdSuccess = fdSuccess; orderView.PatContent = pnrContent.PatRawData; orderView.PnrContent = pnrContent.PnrRawData; orderView.UseBPNR = !pnrContent.UsedCrsCode; orderView.PATPrice = patPrice; context.Session["ReservedFlights"] = reservedFlights; context.Session["OrderView"] = orderView; }
private void commitPassengerInfos() { var passengers = Session["UpgradePassengers"] as IEnumerable <PassengerView>; var flights = getFlights(); var applyform = Session["UpgradeApplyformView"] as UpgradeApplyformView; applyform.PNRSource = OrderSource.PlatformOrder; foreach (var item in applyform.Items) { item.Flight = ReserveViewConstuctor.GetOrderFlightView(flights.First(f => f.Departure.Code == item.Flight.Departure && f.Arrival.Code == item.Flight.Arrival)); } applyform.NewPNR = PNRHelper.ReserveSeat(flights, passengers); if (PNRHelper.RequirePat(flights, PolicyType.Normal)) { applyform.PATPrice = PNRHelper.Pat(applyform.NewPNR, flights, passengers.First().PassengerType); } Session.Remove("UpgradePassengers"); Session.Remove("UpgradeApplyformView"); Session["ApplyformView"] = applyform; Session["Passengers"] = passengers; }