public ActionResult BookVe(BookModel model) { try { //using (var sessionService = new SessionService()) //{ var sessionService = new SessionService(); var tokenModel = new TokenModel(); var _session = sessionService.GetSession(); if (_session == null) { return(null); } // get token string _token = _session.Token; string _conversationId = _session.ConversationID; if (string.IsNullOrWhiteSpace(_token)) { return(null); } //tokenModel = wss.CreateSession(); var airBookModel = new AirBookModel { ConversationID = _conversationId, Token = _token }; //- SessionCreateRQ //- OTA_AirBookLLSRQ //- OTA_AirPriceLLSRQ //- PassengerDetailsRQ //- EndTransactionLLSRQ //- SessionCloseRQ //seach data in web service List <AirBookModelSegment> airBookModelSegments = new List <AirBookModelSegment>(); AirBookModelSegment airBookModelSegmen = new AirBookModelSegment(); // #1. flight information - *********************************************************************************************************************************** VNAWSOTA_AirBookLLSRQSevice vNAWSOTA_AirBookLLSRQSevice = new VNAWSOTA_AirBookLLSRQSevice(); List <AirBookModelSegment> lstSegments = model.lFlight; if (lstSegments == null || lstSegments.Count == 0) { return(Notifization.Invalid(NotifizationText.Invalid)); } // AIRService.WebService.WSOTA_AirBookLLSRQ.OTA_AirBookRS oTA_AirBookRS = vNAWSOTA_AirBookLLSRQSevice.FUNC_OTA_AirBookRS(new AirBookModel { Segments = lstSegments, ConversationID = _conversationId, Token = _token }); // if (oTA_AirBookRS.ApplicationResults.Success == null) { return(Notifization.Invalid(NotifizationText.Invalid)); } // var _originDestinationOption = oTA_AirBookRS.OriginDestinationOption.ToList(); if (_originDestinationOption.Count == 0) { return(Notifization.NotFound(NotifizationText.NotFound)); } // #2. Get price - *************************************************************************************************************************************************** airBookModel.Segments = model.lFlight; var airPriceModel = new AirPriceModel { ConversationID = _conversationId, Token = _token, lFlight = model.lFlight }; foreach (var item in model.lPassenger) { if (item.PassengerType.ToUpper() == "ADT") { airPriceModel.ADT++; continue; } if (item.PassengerType.ToUpper() == "CNN") { airPriceModel.CNN++; continue; } if (item.PassengerType.ToUpper() == "INF") { airPriceModel.INF++; continue; } } VNAWSOTA_AirPriceLLSRQService vNAWSOTA_AirPriceLLSRQService = new VNAWSOTA_AirPriceLLSRQService(); var airPriceData = vNAWSOTA_AirPriceLLSRQService.AirPrice(airPriceModel); // if (airPriceData.ApplicationResults.Success == null) { return(Notifization.Invalid(NotifizationText.Invalid)); } // #3. Get PNA code - ************************************************************************************************************************************************** var result = new BookVeResult { lPricingInPNR = new List <PricingInPNR>() }; foreach (var item in airPriceData.PriceQuote.PricedItinerary.AirItineraryPricingInfo) { foreach (var iter in model.lPassenger.Where(m => m.PassengerType.ToUpper().Equals(item.PassengerTypeQuantity.Code))) { var price = new PricingInPNR { DateOfBirth = iter.DateOfBirth, SurName = iter.Surname, GivenName = iter.GivenName, type = iter.PassengerType.ToUpper(), Fare = double.Parse(item.ItinTotalFare.BaseFare.Amount) }; foreach (var tax in item.ItinTotalFare.Taxes.Tax) { if (tax.TaxCode.Equals("YRI")) { price.ServiceFee = double.Parse(tax.Amount); } if (tax.TaxCode.Equals("UE3")) { price.TaxFee = double.Parse(tax.Amount); } if (tax.TaxCode.Equals("AX")) { price.VAT = double.Parse(tax.Amount); } if (tax.TaxCode.Equals("C4")) { price.ScanFee = double.Parse(tax.Amount); } } result.lPricingInPNR.Add(price); } } result.Total = double.Parse(airPriceData.PriceQuote.PricedItinerary.TotalAmount); model.lPassenger = model.lPassenger.OrderBy(m => m.PassengerType).ToList(); // create model passenger details model var passengerDetailModel = new PassengerDetailsModel { ContactEmail = model.ContactEmail, ConversationID = _conversationId, Token = _token, lPassenger = model.lPassenger, AirBook = oTA_AirBookRS }; // call service passenger details in ws.service VNAWSPassengerDetailsRQService vNAWSPassengerDetailsRQService = new VNAWSPassengerDetailsRQService(); AIRService.WebService.WSPassengerDetailsRQ.PassengerDetailsRS passengerDetailsRS = vNAWSPassengerDetailsRQService.PassengerDetail(passengerDetailModel); //string a = vNAWSPassengerDetailsRQService.PassengerDetail(passengerDetailModel); // end transaction VNATransaction vNATransaction = new VNATransaction(); //vNATransaction.EndTransaction(tokenModel); var End = vNATransaction.EndTransaction(_session); End = vNATransaction.EndTransaction(_session); // retur value return(Notifization.Data("OK", passengerDetailsRS)); //} } catch (Exception ex) { return(Notifization.TEST("OK" + ex)); } }
public AIRService.WebService.WSOTA_AirBookLLSRQ.OTA_AirBookRS FUNC_OTA_AirBookRS(AirBookModel model) { //SessionService sessionService = new SessionService(); //var _session = sessionService.GetSession(); //if (_session == null) // return null; //// get token string _token = model.Token; string _conversationId = model.ConversationID; //if (string.IsNullOrWhiteSpace(_token)) // return null; //handle try { // header info WebService.WSOTA_AirBookLLSRQ.MessageHeader messageHeader = new WebService.WSOTA_AirBookLLSRQ.MessageHeader(); messageHeader.MessageData = new WebService.WSOTA_AirBookLLSRQ.MessageData(); messageHeader.MessageData.Timestamp = DateTime.Now.ToString("s").Replace("-", "").Replace(":", "") + "Z"; messageHeader.ConversationId = _conversationId; messageHeader.Service = new WebService.WSOTA_AirBookLLSRQ.Service(); messageHeader.Action = "OTA_AirBookLLSRQ"; messageHeader.From = new WebService.WSOTA_AirBookLLSRQ.From(); messageHeader.From.PartyId = new WebService.WSOTA_AirBookLLSRQ.PartyId[1]; var partyID = new WebService.WSOTA_AirBookLLSRQ.PartyId(); partyID.Value = "WebServiceClient"; messageHeader.From.PartyId[0] = partyID; messageHeader.To = new WebService.WSOTA_AirBookLLSRQ.To(); messageHeader.To.PartyId = new WebService.WSOTA_AirBookLLSRQ.PartyId[1]; partyID = new WebService.WSOTA_AirBookLLSRQ.PartyId(); partyID.Value = "WebServiceSupplier"; messageHeader.To.PartyId[0] = partyID; WebService.WSOTA_AirBookLLSRQ.Security1 security = new WebService.WSOTA_AirBookLLSRQ.Security1(); security.BinarySecurityToken = _token ; var oTA_AirBookRQ = new WebService.WSOTA_AirBookLLSRQ.OTA_AirBookRQ(); List <WebService.WSOTA_AirBookLLSRQ.OTA_AirBookRQFlightSegment> lstSegments = new List <WebService.WSOTA_AirBookLLSRQ.OTA_AirBookRQFlightSegment>(); foreach (var item in model.Segments) { var segment = new WebService.WSOTA_AirBookLLSRQ.OTA_AirBookRQFlightSegment(); segment.DepartureDateTime = item.DepartureDateTime.ToString("yyyy-MM-dd'T'HH:mm:ss"); segment.ArrivalDateTime = item.ArrivalDateTime.ToString("yyyy-MM-dd'T'HH:mm:ss"); segment.FlightNumber = item.FlightNumber; segment.ResBookDesigCode = item.ResBookDesigCode; segment.NumberInParty = item.NumberInParty; segment.Status = "NN"; segment.Equipment = new WebService.WSOTA_AirBookLLSRQ.OTA_AirBookRQFlightSegmentEquipment(); segment.Equipment.AirEquipType = item.AirEquipType; segment.OriginLocation = new WebService.WSOTA_AirBookLLSRQ.OTA_AirBookRQFlightSegmentOriginLocation(); segment.OriginLocation.LocationCode = item.OriginLocation; segment.DestinationLocation = new WebService.WSOTA_AirBookLLSRQ.OTA_AirBookRQFlightSegmentDestinationLocation(); segment.DestinationLocation.LocationCode = item.DestinationLocation; segment.MarketingAirline = new WebService.WSOTA_AirBookLLSRQ.OTA_AirBookRQFlightSegmentMarketingAirline(); segment.MarketingAirline.Code = "VN"; segment.MarketingAirline.FlightNumber = item.FlightNumber; segment.OperatingAirline = new WebService.WSOTA_AirBookLLSRQ.OTA_AirBookRQFlightSegmentOperatingAirline(); segment.OperatingAirline.Code = "VN"; lstSegments.Add(segment); } oTA_AirBookRQ.OriginDestinationInformation = lstSegments.ToArray(); WebService.WSOTA_AirBookLLSRQ.OTA_AirBookPortTypeClient client = new WebService.WSOTA_AirBookLLSRQ.OTA_AirBookPortTypeClient(); var data = client.OTA_AirBookRQ(ref messageHeader, ref security, oTA_AirBookRQ); // close session ******************************************************************************************************************************************* //sessionService.CloseSession(_session); // return data ********************************************************************************************************************************************* return(data); } catch (Exception) { //sessionService.CloseSession(_session); return(null); } }