Exemple #1
0
        private VO_PurchaseConfirmRQ getParametros()
        {
            VO_PurchaseConfirmRQ  vo_PurchaseConfirmRQ  = new VO_PurchaseConfirmRQ();
            VO_HotelValuedAvailRQ vo_HotelValuedAvailRQ = clsSesiones.getParametrosHotel();
            VO_Holder             vo_Holder             = new VO_Holder();
            List <VO_ServiceData> lvo_ServiceData       = new List <VO_ServiceData>();
            //List<VO_Customer> lvo_Customer = new List<VO_Customer>();

            string sAdulto = string.Empty;

            try { sAdulto = ConfigurationManager.AppSettings["AdultoHB"].ToString(); }
            catch { sAdulto = "AD"; }

            DataSet dsRoomType = clsSesiones.getReservaHotel();

            DataTable dtHotelRoom = dsRoomType.Tables[TABLA_HOTEL_ROOM];

            DataRow[] drHotelRoom = dtHotelRoom.Select();

            vo_PurchaseConfirmRQ.Credentials = vo_HotelValuedAvailRQ.Credentials;

            int iPos = vo_HotelValuedAvailRQ.lHotelOccupancy.Count;

            for (int i = 0; i < iPos; i++)
            {
                VO_ServiceData vo_ServiceData = new VO_ServiceData();
                vo_ServiceData.lCustomer = vo_HotelValuedAvailRQ.lHotelOccupancy[i].Occupancy.lGuestList;
                vo_ServiceData.SPUI      = drHotelRoom[0][COLUMN_SPUI].ToString();
                lvo_ServiceData.Add(vo_ServiceData);
            }

            vo_PurchaseConfirmRQ.lServiceData = lvo_ServiceData;

            int iContador = lvo_ServiceData[0].lCustomer.Count;

            for (int j = 0; j < iContador; j++)
            {
                if (lvo_ServiceData[0].lCustomer[j].Type.Equals(sAdulto))
                {
                    vo_Holder.Name     = lvo_ServiceData[0].lCustomer[j].Name;
                    vo_Holder.LastName = lvo_ServiceData[0].lCustomer[j].LastName;
                    vo_Holder.Type     = lvo_ServiceData[0].lCustomer[j].Type;
                    break;
                }
            }

            vo_PurchaseConfirmRQ.Holder = vo_Holder;

            // Traemos la tabla
            /*Recuperamos la cache para traer el id de la empresa y enviarlo en el AgencyReference*/
            clsCache cCache = new csCache().cCache();

            vo_PurchaseConfirmRQ.AgencyReference = cCache.Empresa;//drHotelRoom[0][COLUMN_BRANCH].ToString();
            vo_PurchaseConfirmRQ.PurchaseToken   = drHotelRoom[0][COLUMN_PURCHASE_TOKEN].ToString();

            return(vo_PurchaseConfirmRQ);
        }
Exemple #2
0
        private VO_ServiceAddRQ getParametros(string sId)
        {
            VO_ServiceAddRQ       vo_ServiceAddRQ       = new VO_ServiceAddRQ();
            VO_HotelValuedAvailRQ vo_HotelValuedAvailRQ = clsSesiones.getParametrosHotel();
            VO_HotelInfo          vo_HotelInfo          = new VO_HotelInfo();
            VO_HotelRoom          vo_HotelRoom          = new VO_HotelRoom();

            DataSet dsRoomType = clsSesiones.getResultadoHotel();
            string  sWhere     = COLUMN_SELECCION + "=" + sId + "";

            vo_ServiceAddRQ.Credentials     = vo_HotelValuedAvailRQ.Credentials;
            vo_ServiceAddRQ.lHotelOccupancy = vo_HotelValuedAvailRQ.lHotelOccupancy;

            // Traemos la tabla
            DataTable dtHotelRoom = dsRoomType.Tables[TABLA_HOTEL_ROOM];

            DataRow[] drHotelRoom = dtHotelRoom.Select(sWhere);

            vo_ServiceAddRQ.AvailToken     = drHotelRoom[0][COLUMN_AVAIL_TOKEN].ToString();
            vo_ServiceAddRQ.IncomingOffice = drHotelRoom[0][COLUMN_INCOMING_CODE].ToString();
            vo_ServiceAddRQ.ContractName   = drHotelRoom[0][COLUMN_CONTRACT_NAME].ToString();
            vo_ServiceAddRQ.DateFrom       = drHotelRoom[0][COLUMN_DATE_FROM].ToString();
            vo_ServiceAddRQ.DateTo         = drHotelRoom[0][COLUMN_DATE_TO].ToString();

            vo_HotelInfo.Code        = drHotelRoom[0][COLUMN_HOTEL_INFO_CODE].ToString();
            vo_HotelInfo.Destination = vo_HotelValuedAvailRQ.Destination;

            vo_HotelRoom.BoardCode = drHotelRoom[0][COLUMN_BOARD_CODE].ToString();
            vo_HotelRoom.RoomTypeCharacteristic = drHotelRoom[0][COLUMN_CHARASTERISTIC].ToString();
            vo_HotelRoom.RoomTypeCode           = drHotelRoom[0][COLUMN_CODE].ToString();
            vo_HotelRoom.SHRUI = drHotelRoom[0][COLUMN_SHRUI].ToString();
            try
            {
                for (int j = 0; j < vo_ServiceAddRQ.lHotelOccupancy.Count; j++)
                {
                    VO_HotelRoom vo_HotelRoomId = new VO_HotelRoom();

                    vo_HotelRoomId.BoardCode = drHotelRoom[j][COLUMN_BOARD_CODE].ToString();
                    vo_HotelRoomId.RoomTypeCharacteristic = drHotelRoom[j][COLUMN_CHARASTERISTIC].ToString();
                    vo_HotelRoomId.RoomTypeCode           = drHotelRoom[j][COLUMN_CODE].ToString();
                    vo_HotelRoomId.SHRUI = drHotelRoom[j][COLUMN_SHRUI].ToString();

                    vo_ServiceAddRQ.lHotelOccupancy[j].HotelRoom = vo_HotelRoomId;
                }
            }
            catch { }
            vo_ServiceAddRQ.HotelInfo = vo_HotelInfo;
            vo_ServiceAddRQ.HotelRoom = vo_HotelRoom;

            return(vo_ServiceAddRQ);
        }
Exemple #3
0
        public VO_HotelValuedAvailRQ cRecuperaParamHot()
        {
            VO_HotelValuedAvailRQ vo_Object = null;

            try
            {
                string        idSession    = new clsCacheControl().RecuperarSesionId();
                string        FileCache    = "vo_HotelValuedAvailRQ" + idSession;
                string        strPathXML   = clsValidaciones.CacheTempCrea();
                TextReader    txtReader    = new StreamReader(strPathXML + FileCache + ".xml");
                XmlSerializer SerializerRS = new XmlSerializer(typeof(VO_HotelValuedAvailRQ));
                vo_Object = (VO_HotelValuedAvailRQ)SerializerRS.Deserialize(txtReader);
                txtReader.Close();
                txtReader.Dispose();
            }
            catch { }
            return(vo_Object);
        }
Exemple #4
0
 public void cGuardaParamHot(VO_HotelValuedAvailRQ vo_Object)
 {
     try
     {
         string idSession  = new clsCacheControl().RecuperarSesionId();
         string FileCache  = "vo_HotelValuedAvailRQ" + idSession;
         string strPathXML = clsValidaciones.CacheTempCrea();
         try
         {
             XmlSerializer SerializerRQ = new XmlSerializer(typeof(VO_HotelValuedAvailRQ));
             StreamWriter  WriterRQ     = new StreamWriter(strPathXML + FileCache + ".xml");
             SerializerRQ.Serialize(WriterRQ, vo_Object);
             WriterRQ.Flush();
             WriterRQ.Close();
         }
         catch { }
     }
     catch { }
 }
        public HotelShopRS getHoteles(VO_HotelValuedAvailRQ vo_HotelValuedAvailRQ, string strMoneda, string Ruta)
        {
            clsResultados  cResultados    = new clsResultados();
            clsParametros  cParametros    = new clsParametros();
            StringBuilder  consulta       = new StringBuilder();
            HotelShopRQ    oHotelShopRQ   = new HotelShopRQ();
            HotelShopRS    oHotelShopRS   = new HotelShopRS();
            VO_Credentials vo_Credentials = clsCredenciales.Credenciales(Enum_ProveedorWebServices.TotalTrip);

            vo_HotelValuedAvailRQ.Credentials = vo_Credentials;

            bool bSoloTT = false;

            try
            {
                bSoloTT = bool.Parse(clsValidaciones.GetKeyOrAdd("bSoloTT", "False"));
            }
            catch { }

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

                int    iRoom      = vo_HotelValuedAvailRQ.lHotelOccupancy.Count;
                Room[] oRoomArray = new Room[iRoom];
                for (int i = 0; i < iRoom; i++)
                {
                    Room  oRoom     = new Room();
                    int   iPax      = vo_HotelValuedAvailRQ.lHotelOccupancy[i].Occupancy.lGuestList.Count;
                    Pax[] oPaxArray = new Pax[iPax];
                    for (int j = 0; j < iPax; j++)
                    {
                        Pax oPax = new Pax();
                        oPax.Age = vo_HotelValuedAvailRQ.lHotelOccupancy[i].Occupancy.lGuestList[j].Age;
                        if (vo_HotelValuedAvailRQ.lHotelOccupancy[i].Occupancy.lGuestList[j].Type.Equals(sAdulto))
                        {
                            oPax.PaxType = PaxType.Adult;
                        }
                        else
                        {
                            oPax.PaxType = PaxType.Child;
                        }

                        oPaxArray[j] = oPax;
                    }
                    oRoom.Paxes   = oPaxArray;
                    oRoomArray[i] = oRoom;
                }

                oHotelShopRQ.CityTo   = vo_HotelValuedAvailRQ.Destination;
                oHotelShopRQ.DateFrom = DateTime.Parse(clsValidaciones.ConverFechaSinSeparadorYMD(vo_HotelValuedAvailRQ.CheckInDate));
                oHotelShopRQ.DateTo   = DateTime.Parse(clsValidaciones.ConverFechaSinSeparadorYMD(vo_HotelValuedAvailRQ.CheckOutDate));
                oHotelShopRQ.Rooms    = oRoomArray;
                oHotelShopRQ.Username = vo_Credentials.LoginUser;
                oHotelShopRQ.Password = vo_Credentials.PasswordUser;
                oHotelShopRQ.Currency = strMoneda;
                oHotelShopRQ.Language = "ES";
                int iResultados = Convert.ToInt32(clsValidaciones.GetKeyOrAdd("CantidadRHoteles", "500"));

                try
                {
                    if (HttpContext.Current.Session["$CantHoteles"] != null)
                    {
                        iResultados = Convert.ToInt32(HttpContext.Current.Session["$CantHoteles"].ToString());
                    }
                }
                catch { }

                oHotelShopRQ.MaxResults = iResultados;
                if (bSoloTT)
                {
                    oHotelShopRQ.ContentType = ContentType.Exclusive;
                }
                else
                {
                    oHotelShopRQ.ContentType = ContentType.NonExclusive;
                }

                HotelShopService oHotelShopService = new HotelShopService();
                oHotelShopService.Url = clsEsquema.setConexionWs(oHotelShopService.Url);

                string sRutaGen     = Ruta;
                string sHotelShopRQ = "HotelShopRQ";
                string sHotelShopRS = "HotelShopRS";
                try
                {
                    clsXML.ClaseXML(oHotelShopRQ, sRutaGen + sHotelShopRQ + "hilo.xml");
                }
                catch { }

                oHotelShopRS = oHotelShopService.HotelShop(oHotelShopRQ);
                try
                {
                    clsXML.ClaseXML(oHotelShopRS, sRutaGen + sHotelShopRS + "hilo.xml");
                }
                catch { }
            }
            catch (Exception Ex)
            {
                cParametros.Id          = 0;
                cParametros.Message     = Ex.Message;
                cParametros.Severity    = clsSeveridad.Alta;
                cParametros.Tipo        = clsTipoError.WebServices;
                cParametros.Metodo      = System.Reflection.MethodBase.GetCurrentMethod().Name;
                cParametros.Complemento = "Resultados de Hoteles";
                cParametros.Source      = Ex.Source;

                consulta.AppendLine("Credenciales: ");
                try
                {
                    if (vo_Credentials != null)
                    {
                        consulta.AppendLine("User: "******"Password: "******"Url: " + vo_Credentials.UrlWebServices);
                        clsCache cCache = new csCache().cCache();
                        if (cCache != null)
                        {
                            consulta.AppendLine("Sesion Local: " + cCache.SessionID.ToString());
                        }
                    }
                }
                catch { }
                cParametros.Info = consulta.ToString();

                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.TotalTrip;
                cResultados.Error      = cParametros;
                ExceptionHandled.Publicar(cParametros);
            }
            return(oHotelShopRS);
        }
        public clsResultados getServices()
        {
            clsResultados  cResultados    = new clsResultados();
            clsParametros  cParametros    = new clsParametros();
            StringBuilder  consulta       = new StringBuilder();
            VO_Credentials vo_Credentials = clsCredenciales.Credenciales(Enum_ProveedorWebServices.TotalTrip);

            try
            {
                cResultados.dsResultados = clsSesiones.getReservaHotel();
                VO_HotelValuedAvailRQ vo_HotelValuedAvailRQ = clsSesiones.getParametrosHotel();

                HotelConfirmRQ oHotelConfirmRQ = new HotelConfirmRQ();
                HotelConfirmRS oHotelConfirmRS = new HotelConfirmRS();

                HotelFare oHotelFare = getHotelFare(cResultados.dsResultados);
                oHotelConfirmRQ.HotelFare = oHotelFare;

                oHotelConfirmRQ.Username = vo_Credentials.LoginUser;
                oHotelConfirmRQ.Password = vo_Credentials.PasswordUser;

                HotelConfirmService oHotelConfirmService = new HotelConfirmService();
                oHotelConfirmService.Url = clsEsquema.setConexionWs(oHotelConfirmService.Url);
                string   sRutaGen        = clsValidaciones.XMLDatasetCrea();
                string   sHotelConfirmRQ = "HotelConfirmRQ";
                string   sHotelConfirmRS = "HotelConfirmRS";
                clsCache cCache          = new csCache().cCache();
                try
                {
                    if (cCache != null)
                    {
                        sHotelConfirmRQ += cCache.SessionID;
                        sHotelConfirmRS += cCache.SessionID;
                    }
                }
                catch { }
                try
                {
                    clsXML.ClaseXML(oHotelConfirmRQ, sRutaGen + sHotelConfirmRQ + ".xml");
                }
                catch { }

                oHotelConfirmRS = oHotelConfirmService.HotelConfirm(oHotelConfirmRQ);
                bool bCambioTarifa = getValidaCambioTarifa(oHotelFare, oHotelConfirmRS.HotelFare);

                try
                {
                    clsXML.ClaseXML(oHotelConfirmRS, sRutaGen + sHotelConfirmRS + ".xml");
                }
                catch { }

                cParametros = new clsEsquema().GetDatasetConfirmaReserva(cResultados.dsResultados, oHotelConfirmRS, bCambioTarifa);
                if (!cParametros.Id.Equals(0))
                {
                    clsSesiones.setReservaHotel(cResultados.dsResultados);
                    cResultados.Error = cParametros;
                }
                else
                {
                    cParametros.Id       = 0;
                    cParametros.Message  = cResultados.dsResultados.Tables[clsEsquema.TABLA_ERROR].Rows[0][clsEsquema.COLUMN_MESSAGE].ToString();
                    cParametros.Severity = clsSeveridad.Alta;
                    cParametros.Tipo     = clsTipoError.WebServices;
                    cParametros.Metodo   = "HotelConfirmRQ";
                    consulta.AppendLine("Credenciales: ");
                    try
                    {
                        if (vo_Credentials != null)
                        {
                            consulta.AppendLine("User: "******"Password: "******"Url: " + vo_Credentials.UrlWebServices);
                            if (cCache != null)
                            {
                                consulta.AppendLine("Sesion Local: " + cCache.SessionID.ToString());
                            }
                        }
                    }
                    catch { }
                    cParametros.Info        = consulta.ToString();
                    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       = "502";
                    cParametros.ValidaInfo = false;
                    cParametros.MessageBD  = true;
                    cParametros.TipoWs     = Enum_ProveedorWebServices.TotalTrip;

                    cResultados.Error = cParametros;
                    ExceptionHandled.Publicar(cParametros);
                }
            }
            catch (Exception Ex)
            {
                cParametros.Id          = 0;
                cParametros.Message     = Ex.Message;
                cParametros.Severity    = clsSeveridad.Alta;
                cParametros.Tipo        = clsTipoError.WebServices;
                cParametros.Metodo      = System.Reflection.MethodBase.GetCurrentMethod().Name;
                cParametros.Complemento = "Confirmacion de reserva de Hoteles";
                cParametros.Source      = Ex.Source;
                consulta.AppendLine("Credenciales: ");
                try
                {
                    if (vo_Credentials != null)
                    {
                        consulta.AppendLine("User: "******"Password: "******"Url: " + vo_Credentials.UrlWebServices);
                        clsCache cCache = new csCache().cCache();
                        if (cCache != null)
                        {
                            consulta.AppendLine("Sesion Local: " + cCache.SessionID.ToString());
                        }
                    }
                }
                catch { }
                cParametros.Info       = consulta.ToString();
                cParametros.StackTrace = Ex.StackTrace;
                cParametros.ViewMessage.Add("La reserva no se confirmo");
                cParametros.Sugerencia.Add("Por favor intente de nuevo");
                cParametros.Code       = "502";
                cParametros.ValidaInfo = false;
                cParametros.MessageBD  = true;
                cParametros.TipoWs     = Enum_ProveedorWebServices.TotalTrip;
                cResultados.Error      = cParametros;
                ExceptionHandled.Publicar(cParametros);
            }
            return(cResultados);
        }
        public HotelFare getHotelFare(DataSet dsData)
        {
            clsParametros  cParametros    = new clsParametros();
            HotelFare      oHotelFare     = new HotelFare();
            StringBuilder  consulta       = new StringBuilder();
            VO_Credentials vo_Credentials = clsCredenciales.Credenciales(Enum_ProveedorWebServices.TotalTrip);

            bool bSoloTT = false;

            try
            {
                bSoloTT = bool.Parse(clsValidaciones.GetKeyOrAdd("bSoloTT", "False"));
            }
            catch { }

            try
            {
                VO_HotelValuedAvailRQ vo_HotelValuedAvailRQ = clsSesiones.getParametrosHotel();


                DataTable dtHotelInfo = dsData.Tables[clsEsquema.TABLA_HOTEL_INFO];
                DataTable dtHotelRoom = dsData.Tables[clsEsquema.TABLA_HOTEL_ROOM];
                DataTable dtPriceDate = dsData.Tables[clsEsquema.TABLA_PRICE];
                if (dtHotelInfo.Rows.Count > 0)
                {
                    string  sWhere          = string.Empty;
                    int     sHotel          = int.Parse(dtHotelInfo.Rows[0][clsEsquema.COLUMN_HOTELCODE].ToString());
                    string  sCityCode       = dtHotelInfo.Rows[0][clsEsquema.COLUMN_DESTINATION_CODE].ToString();
                    decimal dAgencyComision = clsValidaciones.getDecimalNotRound(dtHotelInfo.Rows[0][clsEsquema.COLUMN_AGENCY_COMISION].ToString());
                    decimal dIva            = clsValidaciones.getDecimalNotRound(dtHotelInfo.Rows[0][clsEsquema.COLUMN_IVA].ToString());
                    int     iSource         = int.Parse(dtHotelInfo.Rows[0][clsEsquema.COLUMN_SOURCE].ToString());

                    Hotel oHotel = new Hotel();

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

                    int iRoom = dtHotelRoom.Rows.Count;

                    HotelRoom[] oRoomArray = new HotelRoom[iRoom];


                    oHotel.CityCode  = sCityCode;
                    oHotel.HotelCode = sHotel;
                    oHotel.Source    = iSource;

                    for (int i = 0; i < iRoom; i++)
                    {
                        HotelRoomType[] oHotelRoomTypeArray = new HotelRoomType[1];

                        sWhere = clsEsquema.COLUMN_HOTEL_ROOM_ID + " = " + dtHotelRoom.Rows[i][clsEsquema.COLUMN_HOTEL_ROOM_ID].ToString();
                        HotelRoom     oRoom          = new HotelRoom();
                        HotelRoomType oHotelRoomType = new HotelRoomType();

                        int            iPax      = vo_HotelValuedAvailRQ.lHotelOccupancy[i].Occupancy.lGuestList.Count;
                        HotelRoomPax[] oPaxArray = new HotelRoomPax[iPax];
                        for (int j = 0; j < iPax; j++)
                        {
                            HotelRoomPax oPax = new HotelRoomPax();
                            oPax.Age = vo_HotelValuedAvailRQ.lHotelOccupancy[i].Occupancy.lGuestList[j].Age;
                            if (vo_HotelValuedAvailRQ.lHotelOccupancy[i].Occupancy.lGuestList[j].Type.Equals(sAdulto))
                            {
                                oPax.PaxType = PaxType.Adult;
                            }
                            else
                            {
                                oPax.PaxType = PaxType.Child;
                            }

                            oPax.EmailAddress = "*****@*****.**";
                            oPax.FirstName    = vo_HotelValuedAvailRQ.lHotelOccupancy[i].Occupancy.lGuestList[j].Name;
                            oPax.LastName     = vo_HotelValuedAvailRQ.lHotelOccupancy[i].Occupancy.lGuestList[j].LastName;
                            oPax.PhoneNumber  = "571";

                            oPaxArray[j] = oPax;
                        }
                        oRoom.Paxes = oPaxArray;
                        DataRow[]       drRoomsPrices = dtPriceDate.Select(sWhere);
                        int             iFechas       = drRoomsPrices.Length;
                        EffectiveDate[] eFechasArray  = new EffectiveDate[iFechas];
                        int             k             = 0;
                        foreach (DataRow drRoomPrice in drRoomsPrices)
                        {
                            EffectiveDate eFechas = new EffectiveDate();
                            eFechas.Date              = DateTime.Parse(drRoomPrice[clsEsquema.COLUMN_DATE].ToString());;
                            eFechas.AmountAfterTax    = decimal.Parse(drRoomPrice[clsEsquema.COLUMN_PRICE_AMOUN_AFTER_TAX].ToString());
                            eFechas.AmountBeforeTax   = decimal.Parse(drRoomPrice[clsEsquema.COLUMN_PRICE_AMOUN_BEFORE_TAX].ToString());
                            eFechas.DiscountAfterTax  = decimal.Parse(drRoomPrice[clsEsquema.COLUMN_PRICE_DISCOUNT_AFTER_TAX].ToString());
                            eFechas.DiscountBeforeTax = decimal.Parse(drRoomPrice[clsEsquema.COLUMN_PRICE_DISCOUNT_BEFORE_TAX].ToString());
                            try
                            {
                                eFechas.Currency         = drRoomPrice[clsEsquema.COLUMN_CURRENCY].ToString();
                                eFechas.ProviderCurrency = drRoomPrice[clsEsquema.COLUMN_PROVIDER_CURRENCY].ToString();
                                eFechas.ROE = decimal.Parse(drRoomPrice[clsEsquema.COLUMN_ROE].ToString());
                            }
                            catch { }
                            eFechasArray[k] = eFechas;
                            k++;
                        }
                        oHotelRoomType.EffectiveDates = eFechasArray;
                        oHotelRoomType.InvBlockCode   = dtHotelRoom.Rows[i][clsEsquema.COLUMN_CHARASTERISTIC].ToString();
                        oHotelRoomType.RatePlanType   = dtHotelRoom.Rows[i][clsEsquema.COLUMN_CONFIRM_RATEPLANTYPE].ToString();
                        oHotelRoomType.RoomDesc       = dtHotelRoom.Rows[i][clsEsquema.COLUMN_ROOM_TYPE_TEXT].ToString();
                        oHotelRoomType.RoomRate       = dtHotelRoom.Rows[i][clsEsquema.COLUMN_SHRUI].ToString();
                        oHotelRoomType.RoomType       = dtHotelRoom.Rows[i][clsEsquema.COLUMN_TYPE].ToString();

                        oHotelRoomType.AmountIncludedBoardSurcharge = decimal.Parse(dtHotelRoom.Rows[i][clsEsquema.COLUMN_ROOM_AMOUNT_SURCHARGE].ToString());
                        try
                        {
                            if (!dtHotelRoom.Rows[i][clsEsquema.COLUMN_ROOM_TTL].ToString().Equals("True"))
                            {
                                oHotelRoomType.TTL = DateTime.Parse(dtHotelRoom.Rows[i][clsEsquema.COLUMN_ROOM_TTL].ToString());
                            }
                        }
                        catch { }

                        oHotelRoomTypeArray[0] = oHotelRoomType;
                        oRoom.RoomTypes        = oHotelRoomTypeArray;

                        oRoomArray[i] = oRoom;
                    }

                    oHotelFare.Hot = oHotel;

                    oHotelFare.Rooms            = oRoomArray;
                    oHotelFare.AgencyCommission = dAgencyComision;
                    oHotelFare.Iva = dIva;
                    if (bSoloTT)
                    {
                        oHotelFare.ContentType = ContentType.Exclusive;
                    }
                    else
                    {
                        oHotelFare.ContentType = ContentType.NonExclusive;
                    }
                }
            }
            catch (Exception Ex)
            {
                cParametros.Id          = 0;
                cParametros.Message     = Ex.Message;
                cParametros.Severity    = clsSeveridad.Alta;
                cParametros.Tipo        = clsTipoError.WebServices;
                cParametros.Metodo      = System.Reflection.MethodBase.GetCurrentMethod().Name;
                cParametros.Complemento = "Confirmacion de Hoteles";
                consulta.AppendLine("Credenciales: ");
                try
                {
                    if (vo_Credentials != null)
                    {
                        consulta.AppendLine("User: "******"Password: "******"Url: " + vo_Credentials.UrlWebServices);
                        clsCache cCache = new csCache().cCache();
                        if (cCache != null)
                        {
                            consulta.AppendLine("Sesion Local: " + cCache.SessionID.ToString());
                        }
                    }
                }
                catch { }
                cParametros.Info       = consulta.ToString();
                cParametros.Source     = Ex.Source;
                cParametros.StackTrace = Ex.StackTrace;
                cParametros.ViewMessage.Add("No se confirmo la reserva");
                cParametros.Sugerencia.Add("Por favor intente de nuevo");
                ExceptionHandled.Publicar(cParametros);
            }
            return(oHotelFare);
        }
        public clsResultados getServicesMulti(VO_HotelValuedAvailRQ vo_HotelValuedAvailRQ)
        {
            clsResultados cResultados = new clsResultados();
            clsParametros cParametros = new clsParametros();
            clsSerializer cDataXml    = new clsSerializer();

            cParametros.Id    = 1;
            cResultados.Error = cParametros;

            //cResultados.dsResultados = cDataXml.XMLDataset("HotelBeds");
            cResultados = getServices(vo_HotelValuedAvailRQ);
            try
            {
                if (!cResultados.Error.Id.Equals(0))
                {
                    DataTable dtHotelInfo  = cResultados.dsResultados.Tables[TABLA_HOTEL_INFO];
                    DataTable dtPageData   = cResultados.dsResultados.Tables[TABLA_PAGINATION_DATA];
                    DataTable dtHotelValue = cResultados.dsResultados.Tables[TABLA_HOTEL_VALUE_AVAIL];

                    int iPaginas = dtHotelInfo.Rows.Count;

                    foreach (DataRow drPageData in dtPageData.Rows)
                    {
                        drPageData[COLUMN_TOTAL_PAGES] = 1;
                    }
                    foreach (DataRow drHotelValue in dtHotelValue.Rows)
                    {
                        drHotelValue[COLUMN_TOTAL_ITEMS] = iPaginas;
                    }
                    dtPageData.AcceptChanges();
                    dtHotelValue.AcceptChanges();

                    clsSesiones.setResultadoHotel(cResultados.dsResultados);
                    if (cResultados.dsResultados.Tables.Count < 5)
                    {
                        cParametros.Id = 0;
                        try
                        {
                            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();
                        }
                        catch { }
                        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);
        }
        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);
        }