public static DataSet GetDatasetSabreAir(AirTicketRS objAirTicketRS) { /*CREAMOS EL SERIALIZADOR DEL OBJETO*/ XmlSerializer xmlSerial = new XmlSerializer(typeof(AirTicketRS)); StringWriter sWriter = new StringWriter(); xmlSerial.Serialize(sWriter, objAirTicketRS); XmlDocument xmlDocumento = new XmlDocument(); /*AGREGAMOS EL STRING DEL OBJETO SERIALIZADO A UN DOCUMENTO XML */ xmlDocumento.LoadXml(sWriter.ToString()); DataSet dsDataset = new DataSet(); /*LEEMOS EL DOCUMENTO XML Y LO AGREGAMOS AL LECTOR XML*/ XmlTextReader txtReader = new XmlTextReader(new StringReader(xmlDocumento.OuterXml)); try { dsDataset.ReadXmlSchema(Get_XSD_Clase(typeof(AirTicketRS), "http://webservices.sabre.com/sabreXML/2003/07")); /*LEEMOS EL XML Y LO AGREGAMOS AL DATASET*/ try { dsDataset.ReadXml(txtReader, XmlReadMode.Auto); } catch { } /*CERRAMO EL LECTOR DEL XML*/ txtReader.Close(); dsDataset.Dispose(); /*ACEPTAMOS L0S CAMBIOS EN EL DATASET*/ dsDataset.AcceptChanges(); /*RETORNAMOS EL DATASET*/ return(dsDataset); } catch (Exception Ex) { /*SI OCURRE UNA EXCEPCION CUALQUIERA*/ clsParametros cParametros = new clsParametros(); cParametros.Id = 0; cParametros.Message = Ex.Message; cParametros.Metodo = Ex.TargetSite.Name; cParametros.Source = Ex.Source; cParametros.StackTrace = Ex.StackTrace; cParametros.Severity = clsSeveridad.Alta; cParametros.Tipo = clsTipoError.WebServices; ExceptionHandled.Publicar(cParametros); txtReader.Close(); return(null); } }
public AirTicketRS getAirTicketRS(VO_PrintersTicketsRQ vo_PrintersTicketsRQ) { /*METODO PRINCICPAL QUE RETORNA EL OBJETO DE RESULTADOS DE SABRE*/ StringBuilder consulta = new StringBuilder(); clsParametros cParametros = new clsParametros(); cParametros.TipoWs = Enum_ProveedorWebServices.Sabre; AirTicketRQ.AirTicketRQ oAirTicketRQ = new WS_SsoftSabre.AirTicketRQ.AirTicketRQ(); AirTicketRS oAirTicketRS = new AirTicketRS(); objvo_Credentials = Ssoft.Utils.clsSesiones.getCredentials(); try { List <string> lsContadorOpciones = new List <string>(); AirTicketRQ.MessageHeader Mensaje_ = clsSabreBase.AirTicket(); if (Mensaje_ != null) { AirTicketRQ.Security Seguridad_ = new AirTicketRQ.Security(); Seguridad_.BinarySecurityToken = Session_; #region [ POS ] AirTicketRQPOS oAirTicketRQPOS = new AirTicketRQPOS(); AirTicketRQPOSSource oAirTicketRQPOSSource = new AirTicketRQPOSSource(); oAirTicketRQPOSSource.PseudoCityCode = objvo_Credentials.Pcc;//ConfigurationManager.AppSettings["Sabre_Ipcc"]; oAirTicketRQPOS.Source = oAirTicketRQPOSSource; oAirTicketRQ.POS = oAirTicketRQPOS; #endregion #region [ VERSION ] oAirTicketRQ.Version = clsSabreBase.SABRE_VERSION_AIRTICKET; #endregion #region [ DESIGNATEPRINTERS ] AirTicketRQOptionalQualifiers oAirTicketRQOptionalQualifiers = new AirTicketRQOptionalQualifiers(); AirTicketRQOptionalQualifiersPricingQualifiers oPricingQualifiers = new AirTicketRQOptionalQualifiersPricingQualifiers(); AirTicketRQOptionalQualifiersPricingQualifiersBasicPrice[] oPricingQualifiersBasicPrices = new AirTicketRQOptionalQualifiersPricingQualifiersBasicPrice[vo_PrintersTicketsRQ.PQNumber.Count]; AirTicketRQOptionalQualifiersMiscQualifiers oMiscQualifiers = new AirTicketRQOptionalQualifiersMiscQualifiers(); AirTicketRQOptionalQualifiersMiscQualifiersCommission oMiscQualifiersCommission = new AirTicketRQOptionalQualifiersMiscQualifiersCommission(); int iPosPQ = 0; foreach (string sPQNumber in vo_PrintersTicketsRQ.PQNumber) { AirTicketRQOptionalQualifiersPricingQualifiersBasicPrice oPricingQualifiersBasicPrice = new AirTicketRQOptionalQualifiersPricingQualifiersBasicPrice(); oPricingQualifiersBasicPrice.PQNumber = vo_PrintersTicketsRQ.PQNumber[iPosPQ].ToString(); //oPricingQualifiersBasicPrice.EndPQNumber = vo_PrintersTicketsRQ.EndPQNumber; oPricingQualifiersBasicPrices[iPosPQ] = oPricingQualifiersBasicPrice; iPosPQ++; } oPricingQualifiers.BasicPrice = oPricingQualifiersBasicPrices; oAirTicketRQOptionalQualifiers.PricingQualifiers = oPricingQualifiers; oMiscQualifiersCommission.Percentage = vo_PrintersTicketsRQ.CommisionPercent; oMiscQualifiers.Commission = oMiscQualifiersCommission; oAirTicketRQ.OptionalQualifiers = oAirTicketRQOptionalQualifiers; #endregion AirTicketService oAirTicketService = new AirTicketService(); oAirTicketService.MessageHeaderValue = Mensaje_; oAirTicketService.SecurityValue = Seguridad_; oAirTicketService.Url = objvo_Credentials.UrlWebServices; oAirTicketRS = oAirTicketService.AirTicketRQ(oAirTicketRQ); if (oAirTicketRS.Errors != null) { cParametros.Id = 0; cParametros.Code = oAirTicketRS.Errors.Error.ErrorCode; cParametros.Info = oAirTicketRS.Errors.Error.ErrorInfo.Message; cParametros.Message = oAirTicketRS.Errors.Error.ErrorMessage; cParametros.Severity = oAirTicketRS.Errors.Error.Severity; cParametros.Complemento = "HostCommand: " + oAirTicketRS.TPA_Extensions.HostCommand; cParametros.Metodo = System.Reflection.MethodBase.GetCurrentMethod().Name; cParametros.Tipo = clsTipoError.WebServices; consulta.AppendLine("Credenciales: "); try { if (objvo_Credentials != null) { consulta.AppendLine("User: "******"Password: "******"Ipcc: " + objvo_Credentials.Ipcc); consulta.AppendLine("Pcc: " + objvo_Credentials.Pcc); consulta.AppendLine("QNumber: " + objvo_Credentials.QNumber); consulta.AppendLine("Dominio: " + objvo_Credentials.Dominio); consulta.AppendLine("Session Sabre: " + Session_.ToString()); consulta.AppendLine("Url Sabre: " + objvo_Credentials.UrlWebServices); } } catch { } cParametros.TargetSite = consulta.ToString(); try { clsCache cCache = new csCache().cCache(); if (cCache != null) { cParametros.Source = "Sesion Local: " + cCache.SessionID.ToString(); } else { cParametros.Source = "Sesion Local: No hay cache "; } } catch { cParametros.Source = "Sesion Local: Error "; } ExceptionHandled.Publicar(cParametros); try { Negocios_WebServiceSabreCommand.setEmailError(cParametros, "Error al emitir tiquetes"); } catch { } } else { cParametros.Id = 1; cParametros.Message = oAirTicketRS.Success; cParametros.TipoLog = Enum_Error.Transac; consulta.AppendLine("Credenciales: "); try { if (objvo_Credentials != null) { consulta.AppendLine("User: "******"Password: "******"Ipcc: " + objvo_Credentials.Ipcc); consulta.AppendLine("Pcc: " + objvo_Credentials.Pcc); consulta.AppendLine("QNumber: " + objvo_Credentials.QNumber); consulta.AppendLine("Dominio: " + objvo_Credentials.Dominio); consulta.AppendLine("Session Sabre: " + Session_.ToString()); consulta.AppendLine("Url Sabre: " + objvo_Credentials.UrlWebServices); } } catch { } cParametros.TargetSite = consulta.ToString(); try { clsCache cCache = new csCache().cCache(); if (cCache != null) { cParametros.Source = "Sesion Local: " + cCache.SessionID.ToString(); } else { cParametros.Source = "Sesion Local: No hay cache "; } } catch { cParametros.Source = "Sesion Local: Error "; } cParametros.Metodo = System.Reflection.MethodBase.GetCurrentMethod().Name; cParametros.Complemento = "HostCommand: " + oAirTicketRS.TPA_Extensions.HostCommand; cParametros.Tipo = clsTipoError.WebServices; cParametros.Severity = clsSeveridad.Moderada; ExceptionHandled.Publicar(cParametros); } } } catch (Exception Ex) { cParametros.Id = 0; cParametros.Message = Ex.Message; cParametros.StackTrace = Ex.StackTrace; cParametros.Source = Ex.Source; cParametros.TargetSite = Ex.TargetSite.ToString(); cParametros.Severity = clsSeveridad.Alta; cParametros.Metodo = System.Reflection.MethodBase.GetCurrentMethod().Name; cParametros.Tipo = clsTipoError.WebServices; ExceptionHandled.Publicar(cParametros); try { Negocios_WebServiceSabreCommand.setEmailError(cParametros, "Error al Emitir tiquetes"); } catch { } } return(oAirTicketRS); }