public XmlDocument Credenciales(XmlDocument xmlDoc, VO_Credentials vo_Credentials, string sRQ, bool bSession)
        {
            clsSerializer cDataXml = new clsSerializer();

            try
            {
                if (bSession)
                {
                    xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "sessionId", sRQ, vo_Credentials.SessionId);
                }
            }
            catch { }
            xmlDoc = cDataXml.AsignarParametro(xmlDoc, "User", vo_Credentials.User);
            xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Password", vo_Credentials.Password);
            xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Language", vo_Credentials.Language);
            return(xmlDoc);
        }
예제 #2
0
        public clsResultados getServices()
        {
            clsSerializer        cDataXml             = new clsSerializer();
            clsResultados        cResultados          = new clsResultados();
            clsParametros        cParametros          = new clsParametros();
            VO_PurchaseConfirmRQ vo_PurchaseConfirmRQ = getParametros();

            try
            {
                DataTable dtAdult = (DataTable)HttpContext.Current.Session["TableID"];
                DataTable dtCh    = (DataTable)HttpContext.Current.Session["TableIDCH"];



                string sAdulto  = clsValidaciones.GetKeyOrAdd("AdultoHB", "AD");
                int    passajer = 0;
                string sInfante = clsValidaciones.GetKeyOrAdd("InfanteHB", "CH");

                string sXml = clsEstilosXmlHB.PurchaseConfirmRQ + ".xml";
                //string sXml = clsSolicitudesXml.PurchaseConfirmRS + ".xml";
                string             sRuta         = clsConfiguracionHB.RutaArchivosXml;
                XmlDocument        xmlDoc        = cDataXml.RecuperarXML(sRuta, sXml);
                clsInterfaceWSHttp cInterface    = new clsInterfaceWSHttp();
                XmlNode            objNodo2      = null;
                clsCredencialesHB  cCredenciales = new clsCredencialesHB();
                xmlDoc = cCredenciales.Credenciales(xmlDoc, vo_PurchaseConfirmRQ.Credentials, clsEstilosXmlHB.PurchaseConfirmRQ, false);

                xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "purchaseToken", "ConfirmationData", vo_PurchaseConfirmRQ.PurchaseToken);
                xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "type", "Holder", vo_PurchaseConfirmRQ.Holder.Type);

                xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Name", vo_PurchaseConfirmRQ.Holder.Name, 0);
                xmlDoc = cDataXml.AsignarParametro(xmlDoc, "LastName", vo_PurchaseConfirmRQ.Holder.LastName, 0);
                xmlDoc = cDataXml.AsignarParametro(xmlDoc, "AgencyReference", vo_PurchaseConfirmRQ.AgencyReference, 0);

                int     intHabitaciones = vo_PurchaseConfirmRQ.lServiceData.Count;
                int     j             = 0;
                int     k             = 1;
                int     childs        = 0;
                int     Adultos       = 0;
                int     Adults        = 0;
                bool    infante       = true;
                XmlNode objNodoGen    = cDataXml.AsignarNodo(xmlDoc, "ServiceData", 0);
                XmlNode objNodeAgeGen = cDataXml.AsignarNodo(xmlDoc, "Customer", 0);

                int iInfant = 0;

                for (int lcostumer = 0; lcostumer < intHabitaciones; lcostumer++)
                {
                    passajer = passajer + vo_PurchaseConfirmRQ.lServiceData[lcostumer].lCustomer.Count;
                }


                for (int intIndex = 0; intIndex < intHabitaciones; intIndex++)
                {
                    XmlNode objNodo = null;

                    // La primera vez actualiza el elemento, las otras veces lo copia para adicionarlo
                    if (intIndex == 0)
                    {
                        objNodo  = objNodoGen;
                        objNodo2 = objNodo;
                    }
                    else
                    {
                        objNodo = objNodo2.Clone();
                    }

                    if (intIndex < 1)
                    {
                        xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "SPUI", "ServiceData", vo_PurchaseConfirmRQ.lServiceData[intIndex].SPUI, intIndex);
                    }


                    if (vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer.Count > 0)
                    {
                        for (int x = 0; x < vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer.Count; x++)
                        {
                            if (vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].Type == sAdulto)
                            {
                                XmlNode objNodoAge = null;

                                // La primera vez actualiza el elemento, las otras veces lo copia para adicionarlo


                                if (Adults < 1)
                                {
                                    for (int r = 0; r < passajer - 1; r++)
                                    {
                                        objNodo = objNodeAgeGen.Clone();
                                        cDataXml.AsignarNodo(xmlDoc, "CustomerList", intIndex).AppendChild(objNodo);
                                    }
                                    xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Name", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].Name.ToString(), 0);
                                    xmlDoc = cDataXml.AsignarParametro(xmlDoc, "LastName", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].LastName.ToString(), 0);
                                    Adults = 1;
                                }

                                xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "type", "Customer", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].Type, j);
                                xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Age", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].Age.ToString(), j);
                                xmlDoc = cDataXml.AsignarParametro(xmlDoc, "CustomerId", dtAdult.Rows[Adultos]["customerId"].ToString(), j);
                                xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Name", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].Name.ToString(), k);
                                xmlDoc = cDataXml.AsignarParametro(xmlDoc, "LastName", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].LastName.ToString(), k);
                                j++;
                                k++;
                                Adultos++;
                            }
                        }
                        for (int x = 0; x < vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer.Count; x++)
                        {
                            if (vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].Type == sInfante)
                            {
                                XmlNode objNodoAge = null;

                                xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "type", "Customer", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].Type, j);
                                xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Age", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].Age.ToString(), j);
                                xmlDoc = cDataXml.AsignarParametro(xmlDoc, "CustomerId", dtCh.Rows[childs]["customerId"].ToString(), j);
                                xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Name", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].LastName.ToString(), k);
                                xmlDoc = cDataXml.AsignarParametro(xmlDoc, "LastName", vo_PurchaseConfirmRQ.lServiceData[intIndex].lCustomer[x].LastName.ToString(), k);

                                childs++;
                                j++;
                                k++;
                            }
                        }
                    }
                }

                string sXmlRS = sRuta + clsSolicitudesXmlHB.PurchaseConfirmRS + ".xml";
                xmlDoc.InnerXml = xmlDoc.InnerXml.ToString().Replace("<LastName></LastName>", "");
                xmlDoc.InnerXml = xmlDoc.InnerXml.ToString().Replace("<Name></Name>", "");

                HttpContext.Current.Session["TableID"]   = null;
                HttpContext.Current.Session["TableIDCH"] = null;
                string sResponse = cInterface.ObtenerHttpWebResponse(xmlDoc.InnerXml, vo_PurchaseConfirmRQ.Credentials.UrlWebServices, clsConfiguracionHB.FormatoXml);
                try
                {
                    cDataXml.SaveXML(sXmlRS, sResponse);
                }
                catch { }
                //string sResponse = xmlDoc.InnerXml;
                cResultados.dsResultados = cDataXml.CrearDataSet(sResponse);

                clsSesiones.setConfirmaHotel(cResultados.dsResultados);
                if (cResultados.dsResultados.Tables.Count < 5)
                {
                    cParametros.Id          = 0;
                    cParametros.Code        = cResultados.dsResultados.Tables[TABLA_ERROR].Rows[0][COLUMN_CODE].ToString();
                    cParametros.Info        = cResultados.dsResultados.Tables[TABLA_ERROR].Rows[0][COLUMN_DETAIL_MESSAGE].ToString();
                    cParametros.Message     = cResultados.dsResultados.Tables[TABLA_ERROR].Rows[0][COLUMN_MESSAGE].ToString();
                    cParametros.Severity    = clsSeveridad.Alta;
                    cParametros.Tipo        = clsTipoError.WebServices;
                    cParametros.Metodo      = "PurchaseConfirmRQ";
                    cParametros.Complemento = "Confirmacion de Hoteles";
                    cParametros.ViewMessage.Add("No existen resultados para esta búsqueda");
                    cParametros.Sugerencia.Add("Por favor intente de nuevo");
                    cParametros.Code       = "502";
                    cParametros.ValidaInfo = false;
                    cParametros.MessageBD  = true;
                    cParametros.TipoWs     = Enum_ProveedorWebServices.HotelBeds;

                    cResultados.Error = cParametros;
                    ExceptionHandled.Publicar(cParametros);
                }
                else
                {
                    cParametros.Id    = 1;
                    cResultados.Error = cParametros;
                }
            }
            catch (Exception Ex)
            {
                cParametros.Id          = 0;
                cParametros.Message     = Ex.Message;
                cParametros.Severity    = clsSeveridad.Alta;
                cParametros.Tipo        = clsTipoError.WebServices;
                cParametros.Metodo      = "PurchaseConfirmRQ";
                cParametros.Complemento = "Confirmacion de Hoteles";
                cParametros.Source      = Ex.Source;
                cParametros.StackTrace  = Ex.StackTrace;
                cParametros.ViewMessage.Add("No existen resultados para esta búsqueda");
                cParametros.Sugerencia.Add("Por favor intente de nuevo");
                cParametros.Code       = "502";
                cParametros.ValidaInfo = false;
                cParametros.MessageBD  = true;
                cParametros.TipoWs     = Enum_ProveedorWebServices.HotelBeds;

                cResultados.Error = cParametros;
                ExceptionHandled.Publicar(cParametros);
            }
            return(cResultados);
        }
        public clsResultados getServices(VO_PurchaseReference vo_PurchaseReference)
        {
            clsSerializer cDataXml    = new clsSerializer();
            clsResultados cResultados = new clsResultados();
            clsParametros cParametros = new clsParametros();
            string        sesion      = new clsCacheControl().CrearSession() + HttpContext.Current.Session.SessionID.ToString();

            //VO_PurchaseReference vo_PurchaseReference = clsSesiones.getPurchaseReference();
            try
            {
                string             sXml       = clsEstilosXmlHB.PurchaseCancelRQ + ".xml";
                string             sRuta      = clsConfiguracionHB.RutaArchivosXml;
                XmlDocument        xmlDoc     = cDataXml.RecuperarXML(sRuta, sXml);
                clsInterfaceWSHttp cInterface = new clsInterfaceWSHttp();

                clsCredencialesHB cCredenciales = new clsCredencialesHB();

                VO_Credentials vo_Credentials = new VO_Credentials();

                try { vo_Credentials.Language = ConfigurationManager.AppSettings[clsSesiones.getIdioma()].ToString(); }
                catch { vo_Credentials.Language = "CAS"; }


                vo_Credentials.User              = clsConfiguracionHB.User;
                vo_Credentials.Password          = clsConfiguracionHB.Password;
                vo_Credentials.SessionId         = sesion;
                vo_Credentials.UrlWebServices    = clsConfiguracionHB.UrlWebService;
                vo_PurchaseReference.Credentials = vo_Credentials;
                xmlDoc = cCredenciales.Credenciales(xmlDoc, vo_PurchaseReference.Credentials, clsEstilosXmlHB.PurchaseCancelRQ, false);

                xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "code", "IncomingOffice", vo_PurchaseReference.IncomingOffice);
                xmlDoc = cDataXml.AsignarParametro(xmlDoc, "FileNumber", vo_PurchaseReference.FileNumber, 0);
                string sXmlRS    = sRuta + clsSolicitudesXmlHB.PurchaseCancelRS + ".xml";
                string sResponse = cInterface.ObtenerHttpWebResponse(xmlDoc.InnerXml, vo_PurchaseReference.Credentials.UrlWebServices, clsConfiguracionHB.FormatoXml);

                cDataXml.SaveXML(sXmlRS, sResponse);

                cResultados.dsResultados = cDataXml.CrearDataSet(sResponse);
                if (cResultados.dsResultados.Tables.Count < 5)
                {
                    cParametros.Id          = 0;
                    cParametros.Tipo        = clsTipoError.WebServices;
                    cParametros.Metodo      = "PurchaseCancelRQ";
                    cParametros.Complemento = "Cancelacion de Hoteles";
                    cParametros.ViewMessage.Add("No existen resultados para esta búsqueda");
                    cParametros.Sugerencia.Add("Por favor intente de nuevo");
                    cParametros.Code       = "0";
                    cParametros.ValidaInfo = false;
                    cParametros.MessageBD  = true;
                    cParametros.TipoWs     = Enum_ProveedorWebServices.HotelBeds;

                    cResultados.Error = cParametros;
                    ExceptionHandled.Publicar(cParametros);
                }
                else
                {
                    cParametros.Id    = 1;
                    cResultados.Error = cParametros;
                }
            }
            catch (Exception Ex)
            {
                cParametros.Id          = 0;
                cParametros.Message     = Ex.Message;
                cParametros.Severity    = clsSeveridad.Alta;
                cParametros.Tipo        = clsTipoError.WebServices;
                cParametros.Metodo      = "PurchaseCancelRQ";
                cParametros.Complemento = "Cancelacion de Hoteles";
                cParametros.Source      = Ex.Source;
                cParametros.StackTrace  = Ex.StackTrace;
                cParametros.ViewMessage.Add("No existen resultados para esta búsqueda");
                cParametros.Sugerencia.Add("Por favor intente de nuevo");
                cParametros.Code       = "0";
                cParametros.ValidaInfo = false;
                cParametros.MessageBD  = true;
                cParametros.TipoWs     = Enum_ProveedorWebServices.HotelBeds;

                cResultados.Error = cParametros;
                ExceptionHandled.Publicar(cParametros);
            }
            return(cResultados);
        }
예제 #4
0
        public clsResultados getServices(string sId)
        {
            clsSerializer   cDataXml        = new clsSerializer();
            clsResultados   cResultados     = new clsResultados();
            clsParametros   cParametros     = new clsParametros();
            VO_ServiceAddRQ vo_ServiceAddRQ = getParametros(sId);

            try
            {
                string sAdulto = clsValidaciones.GetKeyOrAdd("AdultoHB", "AD");

                string sInfante = clsValidaciones.GetKeyOrAdd("InfanteHB", "CH");

                string             sXml       = clsEstilosXmlHB.ServiceAddRQ_Hotel + ".xml";
                string             sRuta      = clsConfiguracionHB.RutaArchivosXml;
                string             sUrl       = clsConfiguracionHB.UrlWebService;
                XmlDocument        xmlDoc     = cDataXml.RecuperarXML(sRuta, sXml);
                clsInterfaceWSHttp cInterface = new clsInterfaceWSHttp();

                clsCredencialesHB cCredenciales = new clsCredencialesHB();

                xmlDoc = cCredenciales.Credenciales(xmlDoc, vo_ServiceAddRQ.Credentials, clsEstilosXmlHB.ServiceAddRQ_Hotel, false);

                xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "availToken", "Service", vo_ServiceAddRQ.AvailToken);
                xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "code", "IncomingOffice", vo_ServiceAddRQ.IncomingOffice);
                xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "date", "DateFrom", vo_ServiceAddRQ.DateFrom);
                xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "date", "DateTo", vo_ServiceAddRQ.DateTo);

                xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "code", "Destination", vo_ServiceAddRQ.HotelInfo.Destination);
                xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Code", vo_ServiceAddRQ.HotelInfo.Code, 0);
                xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Name", vo_ServiceAddRQ.ContractName, 0);

                int intHabitaciones = vo_ServiceAddRQ.lHotelOccupancy.Count;

                XmlNode objNodoGen    = cDataXml.AsignarNodo(xmlDoc, "AvailableRoom", 0);
                XmlNode objNodeAgeGen = cDataXml.AsignarNodo(xmlDoc, "GuestList", 0);

                int iInfant = 0;

                for (int intIndex = 0; intIndex < intHabitaciones; intIndex++)
                {
                    XmlNode objNodo = null;

                    // La primera vez actualiza el elemento, las otras veces lo copia para adicionarlo
                    if (intIndex == 0)
                    {
                        objNodo = objNodoGen;
                    }
                    else
                    {
                        objNodo = objNodoGen.Clone();
                    }

                    if (intIndex > 0)
                    {
                        cDataXml.AsignarNodo(xmlDoc, "Service", 0).AppendChild(objNodo);
                    }

                    xmlDoc = cDataXml.AsignarParametro(xmlDoc, "RoomCount", vo_ServiceAddRQ.lHotelOccupancy[intIndex].RoomCount.ToString(), intIndex);
                    xmlDoc = cDataXml.AsignarParametro(xmlDoc, "AdultCount", vo_ServiceAddRQ.lHotelOccupancy[intIndex].Occupancy.AdultCount.ToString(), intIndex);
                    xmlDoc = cDataXml.AsignarParametro(xmlDoc, "ChildCount", vo_ServiceAddRQ.lHotelOccupancy[intIndex].Occupancy.ChildCount.ToString(), intIndex);

                    XmlNode objNodoOcupancy = cDataXml.AsignarNodo(xmlDoc, "Occupancy", intIndex);

                    if (vo_ServiceAddRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList.Count == 0)
                    {
                        objNodoOcupancy.RemoveChild(objNodeAgeGen);
                    }
                    else
                    {
                        for (int x = 0; x < vo_ServiceAddRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList.Count; x++)
                        {
                            if (vo_ServiceAddRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList[x].Type == sInfante)
                            {
                                XmlNode objNodoAge = null;

                                // La primera vez actualiza el elemento, las otras veces lo copia para adicionarlo
                                if (x == 0)
                                {
                                    objNodoAge = objNodeAgeGen;
                                }
                                else
                                {
                                    objNodoAge = objNodeAgeGen.Clone();
                                }
                                if (x > 0)
                                {
                                    cDataXml.AsignarNodo(xmlDoc, "GuestList", intIndex).AppendChild(objNodoAge);
                                }

                                xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "type", "Customer", vo_ServiceAddRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList[x].Type, iInfant);
                                xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Age", vo_ServiceAddRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList[x].Age.ToString(), iInfant);
                                iInfant++;
                            }
                            else
                            {
                                XmlNode objNodoAge = null;

                                // La primera vez actualiza el elemento, las otras veces lo copia para adicionarlo
                                if (x == 0)
                                {
                                    objNodoAge = objNodeAgeGen;
                                    xmlDoc     = cDataXml.AsignarAtrributo(xmlDoc, "type", "Customer", vo_ServiceAddRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList[x].Type, iInfant);
                                    xmlDoc     = cDataXml.AsignarParametro(xmlDoc, "Age", vo_ServiceAddRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList[x].Age.ToString(), iInfant);
                                    iInfant++;
                                }
                            }
                        }
                    }
                    //xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "SHRUI", "HotelRoom", vo_ServiceAddRQ.HotelRoom.SHRUI, intIndex);
                    //xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "code", "Board", vo_ServiceAddRQ.HotelRoom.BoardCode, intIndex);
                    //xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "code", "RoomType", vo_ServiceAddRQ.HotelRoom.RoomTypeCode, intIndex);
                    //xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "characteristic", "RoomType", vo_ServiceAddRQ.HotelRoom.RoomTypeCharacteristic, intIndex);

                    xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "SHRUI", "HotelRoom", vo_ServiceAddRQ.lHotelOccupancy[intIndex].HotelRoom.SHRUI, intIndex);
                    xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "code", "Board", vo_ServiceAddRQ.lHotelOccupancy[intIndex].HotelRoom.BoardCode, intIndex);
                    xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "code", "RoomType", vo_ServiceAddRQ.lHotelOccupancy[intIndex].HotelRoom.RoomTypeCode, intIndex);
                    xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "characteristic", "RoomType", vo_ServiceAddRQ.lHotelOccupancy[intIndex].HotelRoom.RoomTypeCharacteristic, intIndex);
                }

                string sXmlRS    = sRuta + clsSolicitudesXmlHB.ServiceAddRS_Hotel + ".xml";
                string sResponse = cInterface.ObtenerHttpWebResponse(xmlDoc.InnerXml, sUrl, clsConfiguracionHB.FormatoXml);
                try
                {
                    cDataXml.SaveXML(sXmlRS, sResponse);
                }
                catch { }
                //// 1
                //string sXmlRS = clsSolicitudesXml.ServiceAddRS_Hotel + ".xml";
                //XmlDocument xmlDocS = cDataXml.RecuperarXML(sRuta, sXmlRS);
                //// 1
                //string sResponse = xmlDocS.InnerXml;

                cResultados.dsResultados = cDataXml.CrearDataSet(sResponse);
                clsSesiones.setReservaHotel(cResultados.dsResultados);
                if (cResultados.dsResultados.Tables.Count < 5)
                {
                    cParametros.Id          = 0;
                    cParametros.Code        = cResultados.dsResultados.Tables[TABLA_ERROR].Rows[0][COLUMN_CODE].ToString();
                    cParametros.Info        = cResultados.dsResultados.Tables[TABLA_ERROR].Rows[0][COLUMN_DETAIL_MESSAGE].ToString();
                    cParametros.Message     = cResultados.dsResultados.Tables[TABLA_ERROR].Rows[0][COLUMN_MESSAGE].ToString();
                    cParametros.Severity    = clsSeveridad.Alta;
                    cParametros.Tipo        = clsTipoError.WebServices;
                    cParametros.Metodo      = "ServiceAddRQ";
                    cParametros.Complemento = "Reserva de Hoteles";
                    cParametros.ViewMessage.Add(cResultados.dsResultados.Tables[TABLA_ERROR].Rows[0][COLUMN_MESSAGE].ToString());
                    cParametros.Sugerencia.Add("Por favor intente de nuevo");
                    cParametros.Code       = "503";
                    cParametros.ValidaInfo = false;
                    cParametros.MessageBD  = true;
                    cParametros.TipoWs     = Enum_ProveedorWebServices.HotelBeds;

                    cResultados.Error = cParametros;
                    ExceptionHandled.Publicar(cParametros);
                }
                else
                {
                    cParametros.Id    = 1;
                    cResultados.Error = cParametros;
                }
            }
            catch (Exception Ex)
            {
                cParametros.Id          = 0;
                cParametros.Code        = "503";
                cParametros.Message     = Ex.Message;
                cParametros.Severity    = clsSeveridad.Alta;
                cParametros.Tipo        = clsTipoError.WebServices;
                cParametros.Metodo      = "ServiceAddRQ";
                cParametros.Complemento = "Reserva de Hoteles";
                cParametros.Source      = Ex.Source;
                cParametros.StackTrace  = Ex.StackTrace;
                cParametros.ViewMessage.Add("No existen resultados para esta búsqueda");
                cParametros.Sugerencia.Add("Por favor intente de nuevo");
                cParametros.ValidaInfo = false;
                cParametros.MessageBD  = true;
                cParametros.TipoWs     = Enum_ProveedorWebServices.HotelBeds;

                cResultados.Error = cParametros;
                ExceptionHandled.Publicar(cParametros);
            }
            return(cResultados);
        }
        public clsResultados getServices(VO_HotelValuedAvailRQ vo_HotelValuedAvailRQ)
        {
            clsSerializer cDataXml    = new clsSerializer();
            clsResultados cResultados = new clsResultados();
            clsParametros cParametros = new clsParametros();

            try
            {
                string sesion = new clsCacheControl().CrearSession() + HttpContext.Current.Session.SessionID.ToString();
                try
                {
                    if (sesion.Length > 25)
                    {
                        sesion = sesion.Substring(0, 25);
                    }
                }
                catch { }
                string sAdulto = clsValidaciones.GetKeyOrAdd("AdultoHB", "AD");

                string sInfante = clsValidaciones.GetKeyOrAdd("InfanteHB", "CH");

                string sRuta = clsConfiguracionHB.RutaArchivosXml;
                string sXml  = clsEstilosXmlHB.HotelValuedAvailRQ + ".xml";
                //string sXmlCopia = sRuta + clsEstilosXmlHB.HotelValuedAvailRQ + "_" + sesion + ".xml";
                if (vo_HotelValuedAvailRQ.Zone != null)
                {
                    sXml = clsEstilosXmlHB.HotelValuedAvailZoneRQ + ".xml";
                    //sXmlCopia = sRuta + clsEstilosXmlHB.HotelValuedAvailZoneRQ + "_" + sesion + ".xml";
                }

                XmlDocument        xmlDoc     = cDataXml.RecuperarXML(sRuta, sXml);
                clsInterfaceWSHttp cInterface = new clsInterfaceWSHttp();

                VO_Credentials vo_Credentials = new VO_Credentials();

                try { vo_Credentials.Language = ConfigurationManager.AppSettings[clsSesiones.getIdioma()].ToString(); }
                catch { vo_Credentials.Language = "CAS"; }

                vo_Credentials.User               = clsConfiguracionHB.User;
                vo_Credentials.Password           = clsConfiguracionHB.Password;
                vo_Credentials.SessionId          = sesion;
                vo_Credentials.UrlWebServices     = clsConfiguracionHB.UrlWebService;
                vo_HotelValuedAvailRQ.Credentials = vo_Credentials;
                clsSesiones.setParametrosHotel(vo_HotelValuedAvailRQ);
                //cDataXml.ClaseXML(vo_HotelValuedAvailRQ, clsEstilosXml.HotelValuedAvailRQ);
                clsCredencialesHB cCredenciales = new clsCredencialesHB();
                xmlDoc = cCredenciales.Credenciales(xmlDoc, vo_HotelValuedAvailRQ.Credentials, clsEstilosXmlHB.HotelValuedAvailRQ, true);

                xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "pageNumber", "PaginationData", vo_HotelValuedAvailRQ.PaginationData);
                if (HttpContext.Current.Session["$Busqueda"] != null)
                {
                    xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "itemsPerPage", "PaginationData", "2000");
                }
                if (HttpContext.Current.Session["$Estrellas"] != null)
                {
                    string cadena = "<CategoryList><HotelCategory type=" + '"' + "SIMPLE" + '"' + " code=" + '"' + HttpContext.Current.Session["$Estrellas"].ToString() + "EST" + '"' + "/><HotelCategory type=" + '"' + "SIMPLE" + '"' + " code=" + '"' + HttpContext.Current.Session["$Estrellas"].ToString() + "LL" + '"' + "/><HotelCategory type=" + '"' + "SIMPLE" + '"' + " code=" + '"' + "H" + HttpContext.Current.Session["$Estrellas"].ToString() + "_5" + '"' + "/></CategoryList>";
                    xmlDoc.InnerXml = xmlDoc.InnerXml.Replace("$", cadena);
                }
                xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "date", "CheckInDate", vo_HotelValuedAvailRQ.CheckInDate);
                xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "date", "CheckOutDate", vo_HotelValuedAvailRQ.CheckOutDate);
                xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "code", "Destination", vo_HotelValuedAvailRQ.Destination);
                if (vo_HotelValuedAvailRQ.Zone != null)
                {
                    xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "code", "Zone", vo_HotelValuedAvailRQ.Zone);
                    if (vo_HotelValuedAvailRQ.Type.Equals(Enum_TypeZone.SIMPLE))
                    {
                        xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "type", "Zone", "SIMPLE");
                    }
                    else
                    {
                        xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "type", "Zone", "GROUP");
                    }
                }

                int intHabitaciones = vo_HotelValuedAvailRQ.lHotelOccupancy.Count;

                XmlNode objNodoGen    = cDataXml.AsignarNodo(xmlDoc, "HotelOccupancy", 0);
                XmlNode objNodeAgeGen = cDataXml.AsignarNodo(xmlDoc, "GuestList", 0);
                int     iInfant       = 0;
                for (int intIndex = 0; intIndex < intHabitaciones; intIndex++)
                {
                    XmlNode objNodo = null;

                    // La primera vez actualiza el elemento, las otras veces lo copia para adicionarlo
                    if (intIndex == 0)
                    {
                        objNodo = objNodoGen;
                    }
                    else
                    {
                        objNodo = objNodoGen.Clone();
                    }

                    if (intIndex > 0)
                    {
                        cDataXml.AsignarNodo(xmlDoc, "OccupancyList", 0).AppendChild(objNodo);
                    }

                    xmlDoc = cDataXml.AsignarParametro(xmlDoc, "RoomCount", vo_HotelValuedAvailRQ.lHotelOccupancy[intIndex].RoomCount.ToString(), intIndex);
                    xmlDoc = cDataXml.AsignarParametro(xmlDoc, "AdultCount", vo_HotelValuedAvailRQ.lHotelOccupancy[intIndex].Occupancy.AdultCount.ToString(), intIndex);
                    xmlDoc = cDataXml.AsignarParametro(xmlDoc, "ChildCount", vo_HotelValuedAvailRQ.lHotelOccupancy[intIndex].Occupancy.ChildCount.ToString(), intIndex);

                    XmlNode objNodoOcupancy = cDataXml.AsignarNodo(xmlDoc, "Occupancy", intIndex);

                    if (vo_HotelValuedAvailRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList.Count == 0)
                    {
                        objNodoOcupancy.RemoveChild(objNodeAgeGen);
                    }
                    else
                    {
                        for (int x = 0; x < vo_HotelValuedAvailRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList.Count; x++)
                        {
                            if (vo_HotelValuedAvailRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList[x].Type == sInfante)
                            {
                                XmlNode objNodoAge = null;

                                // La primera vez actualiza el elemento, las otras veces lo copia para adicionarlo
                                if (x == 0)
                                {
                                    objNodoAge = objNodeAgeGen;
                                }
                                else
                                {
                                    objNodoAge = objNodeAgeGen.Clone();
                                }
                                if (x > 0)
                                {
                                    cDataXml.AsignarNodo(xmlDoc, "GuestList", intIndex).AppendChild(objNodoAge);
                                    //cDataXml.AsignarNodo(xmlDoc, "Customer", intIndex).AppendChild(objNodoAge);
                                }
                                xmlDoc = cDataXml.AsignarAtrributo(xmlDoc, "type", "Customer", vo_HotelValuedAvailRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList[x].Type, iInfant);
                                xmlDoc = cDataXml.AsignarParametro(xmlDoc, "Age", vo_HotelValuedAvailRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList[x].Age.ToString(), iInfant);
                                iInfant++;
                            }
                            else
                            {
                                XmlNode objNodoAge = null;

                                // La primera vez actualiza el elemento, las otras veces lo copia para adicionarlo
                                if (x == 0)
                                {
                                    objNodoAge = objNodeAgeGen;
                                    xmlDoc     = cDataXml.AsignarAtrributo(xmlDoc, "type", "Customer", vo_HotelValuedAvailRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList[x].Type, iInfant);
                                    xmlDoc     = cDataXml.AsignarParametro(xmlDoc, "Age", vo_HotelValuedAvailRQ.lHotelOccupancy[intIndex].Occupancy.lGuestList[x].Age.ToString(), iInfant);
                                    iInfant++;
                                }
                            }
                        }
                    }
                }
                string sXmlRS    = sRuta + clsSolicitudesXmlHB.HotelValuedAvailRS + "_pag_" + vo_HotelValuedAvailRQ.PaginationData.ToString() + ".xml";
                string sResponse = cInterface.ObtenerHttpWebResponse(xmlDoc.InnerXml, vo_HotelValuedAvailRQ.Credentials.UrlWebServices, clsConfiguracionHB.FormatoXml);

                //try
                //{
                //    //cDataXml.SaveXML(sXmlCopia, xmlDoc.InnerXml);
                //    cDataXml.SaveXML(sXmlRS, sResponse);
                //}
                //catch { }
                cResultados.dsResultados = cDataXml.CrearDataSet(sResponse);
                //try
                //{
                //cDataXml.SaveXML(sXmlCopia, xmlDoc.InnerXml);
                //cDataXml.DatasetXML(cResultados.dsResultados, "HotelBeds");
                //}
                //catch { }

                clsSesiones.setResultadoHotel(cResultados.dsResultados);
                if (cResultados.dsResultados.Tables.Count < 5)
                {
                    cParametros.Id          = 0;
                    cParametros.Code        = cResultados.dsResultados.Tables[TABLA_ERROR].Rows[0][COLUMN_CODE].ToString();
                    cParametros.Info        = cResultados.dsResultados.Tables[TABLA_ERROR].Rows[0][COLUMN_DETAIL_MESSAGE].ToString();
                    cParametros.Message     = cResultados.dsResultados.Tables[TABLA_ERROR].Rows[0][COLUMN_MESSAGE].ToString();
                    cParametros.Severity    = clsSeveridad.Alta;
                    cParametros.Tipo        = clsTipoError.WebServices;
                    cParametros.Metodo      = "HotelValuedAvailRQ";
                    cParametros.Complemento = "Resultados de Hoteles";
                    cParametros.ViewMessage.Add("No existen resultados para esta búsqueda");
                    cParametros.Sugerencia.Add("Por favor intente de nuevo");
                    cParametros.Code       = "501";
                    cParametros.ValidaInfo = false;
                    cParametros.MessageBD  = true;
                    cParametros.TipoWs     = Enum_ProveedorWebServices.HotelBeds;

                    cResultados.Error = cParametros;
                    ExceptionHandled.Publicar(cParametros);
                }
                else
                {
                    cParametros.Id    = 1;
                    cResultados.Error = cParametros;
                }
            }
            catch (Exception Ex)
            {
                cParametros.Id          = 0;
                cParametros.Message     = Ex.Message;
                cParametros.Severity    = clsSeveridad.Alta;
                cParametros.Tipo        = clsTipoError.WebServices;
                cParametros.Metodo      = "HotelValuedAvailRQ";
                cParametros.Complemento = "Resultados de Hoteles";
                cParametros.Source      = Ex.Source;
                cParametros.StackTrace  = Ex.StackTrace;
                cParametros.ViewMessage.Add("No existen resultados para esta búsqueda");
                cParametros.Sugerencia.Add("Por favor intente de nuevo");
                cParametros.Code       = "501";
                cParametros.ValidaInfo = false;
                cParametros.MessageBD  = true;
                cParametros.TipoWs     = Enum_ProveedorWebServices.HotelBeds;

                cResultados.Error = cParametros;
                ExceptionHandled.Publicar(cParametros);
            }
            return(cResultados);
        }