public static OTA_Cancel.MessageHeader OTA_Cancel()
        {
            OTA_Cancel.MessageHeader Mensaje_          = new OTA_Cancel.MessageHeader();
            VO_Credentials           objvo_Credentials = clsSesiones.getCredentials();

            try
            {
                Mensaje_.ConversationId = objvo_Credentials.Conversacion;

                DateTime Fecha_  = DateTime.UtcNow;
                string   Tiempo_ = Fecha_.ToString("s") + "Z";

                OTA_Cancel.From      Desde_             = new OTA_Cancel.From();
                OTA_Cancel.PartyId   DesdePartyID_      = new OTA_Cancel.PartyId();
                OTA_Cancel.PartyId[] DesdePartyIdArray_ = new OTA_Cancel.PartyId[1];

                DesdePartyID_.Value   = "99999";
                DesdePartyIdArray_[0] = DesdePartyID_;
                Desde_.PartyId        = DesdePartyIdArray_;
                Mensaje_.From         = Desde_;

                OTA_Cancel.To        A_             = new OTA_Cancel.To();
                OTA_Cancel.PartyId   APartyID_      = new OTA_Cancel.PartyId();
                OTA_Cancel.PartyId[] APartyIdArray_ = new OTA_Cancel.PartyId[1];

                APartyID_.Value   = "123123";
                APartyIdArray_[0] = APartyID_;
                A_.PartyId        = APartyIdArray_;
                Mensaje_.To       = A_;

                //-------------------------------------------------------------------------------------

                OTA_Cancel.Service     Servicio_     = new OTA_Cancel.Service();
                OTA_Cancel.MessageData MensajeDatos_ = new OTA_Cancel.MessageData();

                Mensaje_.CPAId  = objvo_Credentials.Ipcc;
                Mensaje_.Action = "OTA_CancelLLSRQ";

                Servicio_.Value  = "OTA_Cancel";
                Mensaje_.Service = Servicio_;

                MensajeDatos_.MessageId = objvo_Credentials.Mensaje;
                MensajeDatos_.Timestamp = Tiempo_;
                Mensaje_.MessageData    = MensajeDatos_;
            }
            catch (Exception Ex)
            {
                throw Ex;
            }

            return(Mensaje_);
        }
        public OTA_CancelRS _Sabre_CancelRecord()
        {
            OTA_CancelRS  TravelResultado_ = new OTA_CancelRS();
            clsResultados cResultados      = new clsResultados();
            clsParametros cParametros      = new clsParametros();
            StringBuilder consulta         = new StringBuilder();

            cParametros.TipoWs = Enum_ProveedorWebServices.Sabre;

            try
            {
                objvo_Credentials = clsSesiones.getCredentials();
                OTA_Cancel.MessageHeader Mensaje_ = clsSabreBase.OTA_Cancel();

                if (Mensaje_ != null)
                {
                    OTA_Cancel.Security Seguridad_ = new OTA_Cancel.Security();
                    Seguridad_.BinarySecurityToken = Session_;

                    OTA_CancelRQ          Travel_       = new OTA_CancelRQ();
                    OTA_CancelRQPOS       TravelPos_    = new OTA_CancelRQPOS();
                    OTA_CancelRQPOSSource TravelSource_ = new OTA_CancelRQPOSSource();

                    TravelSource_.PseudoCityCode = objvo_Credentials.Pcc;
                    TravelPos_.Source            = TravelSource_;
                    Travel_.POS = TravelPos_;

                    OTA_CancelRQTPA_Extensions oTPA_Extensions = new OTA_CancelRQTPA_Extensions();
                    OTA_CancelRQTPA_ExtensionsMessagingDetails          oMessagingDetails = new OTA_CancelRQTPA_ExtensionsMessagingDetails();
                    OTA_CancelRQTPA_ExtensionsMessagingDetailsMDRSubset oMDRSubset        = new OTA_CancelRQTPA_ExtensionsMessagingDetailsMDRSubset();

                    //oMDRSubset.Code = "PN12";
                    //oMessagingDetails.MDRSubset = oMDRSubset;
                    //oTPA_Extensions.MessagingDetails = oMessagingDetails;

                    OTA_CancelRQTPA_ExtensionsSegmentCancel          oSegmentCancel         = new OTA_CancelRQTPA_ExtensionsSegmentCancel();
                    OTA_CancelRQTPA_ExtensionsSegmentCancelSegment   oSegmentCancelSegment  = new OTA_CancelRQTPA_ExtensionsSegmentCancelSegment();
                    OTA_CancelRQTPA_ExtensionsSegmentCancelSegment[] oSegmentCancelSegments = new OTA_CancelRQTPA_ExtensionsSegmentCancelSegment[1];

                    //oSegmentCancelSegment.Number = "1";
                    //oSegmentCancelSegment.EndNumber = iSegmentos.ToString();
                    //oSegmentCancelSegments[0] = oSegmentCancelSegment;
                    //oSegmentCancel.Segment = oSegmentCancelSegments;

                    // "Type" refers to the segment type that the user wants to cancel.  Acceptable values for "Type" are "Air", "Car", "Hotel", "Other", or "Entire".  These formats look like this: "XIA", "XIC", "XIH", "XIO", or "XI".
                    oSegmentCancel.Type           = "Entire";
                    oTPA_Extensions.SegmentCancel = oSegmentCancel;
                    Travel_.TPA_Extensions        = oTPA_Extensions;

                    Travel_.Version = clsSabreBase.SABRE_VERSION_CANCEL;

                    OTA_CancelService TravelServicio_ = new OTA_CancelService();

                    TravelServicio_.MessageHeaderValue = Mensaje_;
                    TravelServicio_.SecurityValue      = Seguridad_;
                    TravelServicio_.Url = objvo_Credentials.UrlWebServices;

                    TravelResultado_ = TravelServicio_.OTA_CancelRQ(Travel_);

                    if (TravelResultado_.Errors != null)
                    {
                        cParametros.Id          = 0;
                        cParametros.Code        = TravelResultado_.Errors.Error.ErrorCode;
                        cParametros.Message     = TravelResultado_.Errors.Error.ErrorMessage;
                        cParametros.Severity    = TravelResultado_.Errors.Error.Severity;
                        cParametros.Tipo        = clsTipoError.WebServices;
                        cParametros.Metodo      = System.Reflection.MethodBase.GetCurrentMethod().Name;
                        cParametros.Complemento = "Cancelacion de la reserva";
                        cParametros.ViewMessage.Add("Error al intentar cancelar la reserva");
                        cParametros.Sugerencia.Add("Por favor intente de nuevo");
                        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 ";
                        }
                        cResultados.Error = cParametros;
                        ExceptionHandled.Publicar(cParametros);
                    }
                    else
                    {
                        cParametros.Id      = 1;
                        cParametros.TipoLog = Enum_Error.Transac;
                        cParametros.Message = TravelResultado_.Success;
                        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      = "CancelRecord";
                        cParametros.Complemento = "HostCommand: " + TravelResultado_.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.Severity    = clsSeveridad.Alta;
                cParametros.Tipo        = clsTipoError.WebServices;
                cParametros.Metodo      = Ex.TargetSite.Name;
                cParametros.Complemento = "Cancelacion de la reserva";
                cParametros.Source      = Ex.Source;
                cParametros.StackTrace  = Ex.StackTrace;
                cParametros.ViewMessage.Add("Error al intentar cancelar la reserva");
                cParametros.Sugerencia.Add("Por favor intente de nuevo");
                cResultados.Error = cParametros;
                ExceptionHandled.Publicar(cParametros);
            }
            return(TravelResultado_);
        }