public IHttpActionResult PostHotelRoomType(HotelRoomType hotelRoomType)
        {
            db.HotelRoomTypes.Add(hotelRoomType);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = hotelRoomType.hotelRoomTypeID }, hotelRoomType));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Puthotel_room_type([FromRoute] int id, [FromBody] HotelRoomTypeDTO hotel_room_type)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != hotel_room_type.Id)
            {
                return(BadRequest());
            }


            HotelRoomType hotel_room_type_map = Mapper.Map <HotelRoomType>(hotel_room_type);

            _context.Entry(hotel_room_type_map).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!hotel_room_typeExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public IHttpActionResult PutHotelRoomType(int id, HotelRoomType hotelRoomType)
        {
            if (id != hotelRoomType.hotelRoomTypeID)
            {
                return(BadRequest());
            }

            db.Entry(hotelRoomType).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!HotelRoomTypeExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemplo n.º 4
0
        public override async void ReceiveMessageAsync(EventArgs e)
        {
            string userInput = (e as CallbackQueryEventArgs).CallbackQuery.Data;
            Chat   chat      = (e as CallbackQueryEventArgs).CallbackQuery.Message.Chat;

            if (!Validator.CheckNumber(userInput))
            {
                await ServicesMessageController.SendMessageAsync(chat, Validator.BadNumber);

                return;
            }

            long          roomTypeId = int.Parse(userInput);
            HotelRoomType roomType   = ServicesHotelRoomType.GetHotelRoomTypeById(roomTypeId);
            List <string> photos     = DbServices.GetHotelRoomTypeImagesUrl(roomTypeId);

            if (roomType == null)
            {
                await ServicesMessageController.SendMessageAsync(
                    chat, "Такого типу номеру не існує", Keyboards.ReturnMainMenu);

                return;
            }

            string message = ViewRoomType.GetTextAboutRoomType(roomType);
            await ServicesMessageController.SendPhotosAsync(chat.Id, photos);

            await ServicesMessageController.SendMessageAsync(chat, message, Keyboards.ReturnMainMenu);

            responder.SetState(new HotelRoom_0());
        }
Exemplo n.º 5
0
        public async Task <IActionResult> Posthotel_room_type([FromBody] HotelRoomTypeDTO hotel_room_type)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }


            try
            {
                HotelRoomType hotel_room_type_map = Mapper.Map <HotelRoomType>(hotel_room_type);

                _context.HotelRoomType.Add(hotel_room_type_map);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (hotel_room_typeExists(hotel_room_type.Id))
                {
                    return(new StatusCodeResult(StatusCodes.Status409Conflict));
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtAction("Gethotel_room_type", new { id = hotel_room_type.Id }, hotel_room_type));
        }
Exemplo n.º 6
0
 internal static string GetTextAboutRoomType(HotelRoomType roomType)
 {
     return("" +
            $"*{roomType.Name}*\n\n" +
            $"{roomType.Description}\n\n" +
            $"*Площа:* {roomType.Area} м^2\n" +
            $"*Послуги:* {roomType.Services}\n\n" +
            $"*Ціна за ніч:* {roomType.Price} грн");
 }
Exemplo n.º 7
0
        public IEnumerable <HotelRoomTypeDTO> GetHotelRoomType()
        {
            HotelRoomType           hotel_room_type  = new HotelRoomType();
            var                     model            = Mapper.Map <HotelRoomType, HotelRoomTypeDTO>(hotel_room_type);
            var                     hotel_room_types = _context.HotelRoomType.ToList();
            List <HotelRoomTypeDTO> list_obj         = Mapper.Map <List <HotelRoomType>, List <HotelRoomTypeDTO> >(hotel_room_types);

            return(list_obj);
        }
Exemplo n.º 8
0
        private void open_one_seat(HotelRoom seat, bool child, BathDBDataContext dc)
        {
            if (seat.status == 3)
            {
                BathClass.reset_seat(seat);
                dc.SubmitChanges();
            }

            seat.openEmployee = LogIn.m_User.id.ToString();
            seat.openTime     = BathClass.Now(LogIn.connectionString);
            seat.systemId     = BathClass.systemId(db, LogIn.connectionString);
            seat.status       = 2;
            if (!seatlock)
            {
                seat.chainId = chainId;
            }

            HotelRoomType seatType = dc.HotelRoomType.FirstOrDefault(x => x.id == seat.typeId);

            var menu = dc.Menu.FirstOrDefault(x => x.id == seatType.menuId);

            if (menu != null)
            {
                Orders order = new Orders();
                order.menu          = menu.name;
                order.text          = seat.text;
                order.systemId      = seat.systemId;
                order.number        = 1;
                order.money         = menu.price;
                order.inputTime     = BathClass.Now(LogIn.connectionString);
                order.inputEmployee = LogIn.m_User.id.ToString();
                order.paid          = false;
                dc.Orders.InsertOnSubmit(order);
            }

            if (child)
            {
                var child_menu = dc.Menu.FirstOrDefault(x => x.name == "儿童浴资");
                if (child_menu != null)
                {
                    Orders order = new Orders();
                    order.menu          = child_menu.name;
                    order.text          = seat.text;
                    order.systemId      = seat.systemId;
                    order.number        = 1;
                    order.money         = child_menu.price;
                    order.inputTime     = BathClass.Now(LogIn.connectionString);
                    order.inputEmployee = LogIn.m_User.id.ToString();
                    order.paid          = false;
                    dc.Orders.InsertOnSubmit(order);
                }
            }

            dc.SubmitChanges();
        }
        public IHttpActionResult GetHotelRoomType(int id)
        {
            HotelRoomType hotelRoomType = db.HotelRoomTypes.Find(id);

            if (hotelRoomType == null)
            {
                return(NotFound());
            }

            return(Ok(hotelRoomType));
        }
        public IHttpActionResult DeleteHotelRoomType(int id)
        {
            HotelRoomType hotelRoomType = db.HotelRoomTypes.Find(id);

            if (hotelRoomType == null)
            {
                return(NotFound());
            }

            db.HotelRoomTypes.Remove(hotelRoomType);
            db.SaveChanges();

            return(Ok(hotelRoomType));
        }
Exemplo n.º 11
0
        internal static IReplyMarkup GetReservationsMenu(List <Reservation> listReservation)
        {
            List <List <InlineKeyboardButton> > keyboards = new List <List <InlineKeyboardButton> >();

            foreach (Reservation r in listReservation)
            {
                HotelRoom     room     = ServicesHotelRoom.GetHotelRoomById(r.HotelRoomId);
                HotelRoomType roomType = ServicesHotelRoomType.GetHotelRoomTypeById(room.HotelRoomTypeId);
                keyboards.Add(new List <InlineKeyboardButton>()
                {
                    InlineKeyboardButton.WithCallbackData(
                        $"{roomType.Name}: {r.DateOfArrival}-{r.DateOfDeparture}",
                        $"{r.Id}"
                        )
                });
            }
            return(new InlineKeyboardMarkup(keyboards));
        }
        public async Task <IEnumerable <HotelModel> > GetAll(CancellationToken cancellationToken)
        {
            Random random = new Random();

            List <HotelModel> allHotels = new List <HotelModel>();

            HotelRoomType[] hotelTypes = new HotelRoomType[] { HotelRoomType.King,
                                                               HotelRoomType.TwoQueens,
                                                               HotelRoomType.Suite,
                                                               HotelRoomType.Penthouse };

            foreach (var airPort in (await _airportDataProvider.GetAll(cancellationToken)))
            {
                for (int dayOffset = -1; dayOffset < 7; dayOffset++)
                {
                    DateTime       today           = DateTime.Now.Date.AddDays(dayOffset);
                    TimeZoneInfo   airPortTimeZone = ContosoTravel.Web.Application.Extensions.TimeZoneHelper.FindSystemTimeZoneById(airPort.TimeZone);
                    DateTimeOffset startDate       = DateTimeOffset.Parse($"{today.ToString("MM/dd/yyyy")} 12:00 AM {airPortTimeZone.BaseUtcOffset.Hours.ToString("00")}:{airPortTimeZone.BaseUtcOffset.Minutes.ToString("00")}");
                    if (airPortTimeZone.IsDaylightSavingTime(today))
                    {
                        startDate = startDate.AddHours(1);
                    }

                    double baseCost = 200d;

                    foreach (HotelRoomType hotelType in hotelTypes)
                    {
                        allHotels.Add(new HotelModel()
                        {
                            StartingTime    = startDate,
                            EndingTime      = startDate.AddDays(1),
                            RoomType        = hotelType,
                            Location        = airPort.AirportCode,
                            LocationAirport = airPort,
                            Cost            = random.NextDouble() * baseCost
                        });

                        baseCost += 50d;
                    }
                }
            }

            return(allHotels);
        }
Exemplo n.º 13
0
 internal static string GetTextAboutReservation(Reservation r, HotelRoomType t, HotelRoom room, int countDays)
 {
     return("" +
            $"*{t.Name}\n*" +
            $"\n" +
            $"Прізвище: {r.SecondName}\n" +
            $"Ім’я: {r.FirstName}\n" +
            $"По батькові: {r.MiddleName}\n" +
            $"Номер телефону: {r.Number}\n" +
            $"Email: {r.Email}\n" +
            $"Період: {r.DateOfArrival}-{r.DateOfDeparture}\n" +
            $"Дорослих: {r.NumberOfAdults}\n" +
            $"Дітей: {r.NumberOfChildren}\n" +
            $"\n" +
            $"Кімната: {room.Name}\n" +
            $"Поверх: {room.Floor}\n" +
            $"\n" +
            $"До оплати: {countDays * t.Price} грн\n" +
            $"\n" +
            $"Ідентифікатор для перевірки: *494ebf5f419ad02a86af25f8db5ed114790399c2aa6b233384b1b4b9ac3458e5*");
 }
Exemplo n.º 14
0
        public override async void OnStateChange(Chat chat)
        {
            await ServicesMessageController.SendMessageAsync(chat, "Очікування бронювання");

            responder.userTempData.TryGetValue("HotelRoomTypeId", out string hotelRoomTypeId);
            responder.userTempData.TryGetValue("DateOfArrival", out string arrival);
            responder.userTempData.TryGetValue("DateOfDeparture", out string departure);
            responder.userTempData.TryGetValue("SecondName", out string secondName);
            responder.userTempData.TryGetValue("FirstName", out string firstName);
            responder.userTempData.TryGetValue("MiddleName", out string middleName);
            responder.userTempData.TryGetValue("Number", out string number);
            responder.userTempData.TryGetValue("Email", out string email);
            responder.userTempData.TryGetValue("NumberOfAdults", out string adults);
            responder.userTempData.TryGetValue("NumberOfChildren", out string children);

            Reservation reservation = new Reservation()
            {
                IdUserChat       = chat.Id,
                SecondName       = secondName,
                FirstName        = firstName,
                MiddleName       = middleName,
                Number           = number,
                Email            = email,
                DateOfArrival    = arrival,
                DateOfDeparture  = departure,
                NumberOfAdults   = int.Parse(adults),
                NumberOfChildren = int.Parse(children)
            };

            Reservation r = await DbServices.AddReservationAsync(chat.Id, int.Parse(hotelRoomTypeId), reservation);

            HotelRoom     room      = ServicesHotelRoom.GetHotelRoomById(r.HotelRoomId);
            HotelRoomType t         = ServicesHotelRoomType.GetHotelRoomTypeById(room.HotelRoomTypeId);
            int           countDays = DbServices.GetIntermediateDates(r.DateOfArrival, r.DateOfArrival).Count;

            string text = ViewReservation.GetTextAboutReservation(r, t, room, countDays);
            await ServicesMessageController.SendMessageAsync(chat, text, Keyboards.ReturnMainMenu);
        }
Exemplo n.º 15
0
        public IActionResult Search(HotelSerachViewModel model)

        {
            DateTime           TempchkIn    = new DateTime();
            DateTime           TempchkOut   = new DateTime();
            var                hotelList    = new List <HotelListViewModel>();
            HotelListViewModel hotelModel   = null;
            List <Hotel>       SearchHotels = new List <Hotel>();
            HotelRoomType      RoomType     = new HotelRoomType();
            int                RoomCount    = 0;



            // filtered Hotel by Hotel City And RoomType
            if (model.City != null && model.RoomTypeId > 0 &&
                model.checkOut == null && model.checkIn == null)
            {
                SearchHotels = _filterHotelByCityAndRoomType.
                               GetHotelByCityAndRoomType(model.City, model.checkIn, model.checkOut);
                RoomType = RoomTypeById(model.RoomTypeId);
            }

            // Filtered Hotel by Price and StarRating
            else if (model.Price > 0 && model.StarRatingid > 0)
            {
                SearchHotels = _filterHotelByPriceAndHotelRatings.
                               GetHotelByPriceAndHotelRatings(model.City, model.Price,
                                                              model.StarRatingid, model.checkIn, model.checkOut);
                RoomType = RoomTypeById(model.hotelRoomTypeId);
            }
            // Filtered Hotel By HotelPrice
            else if (model.Price > 0 && model.StarRatingid == 0)
            {
                SearchHotels = _filterHotelByPrice.
                               GetHotelByPrice(model.City, model.Price, model.checkIn, model.checkOut);
                RoomType = RoomTypeById(model.hotelRoomTypeId);
            }
            //Filtered Hotel By StarRating

            else if (model.Price == 0 && model.StarRatingid > 0)
            {
                SearchHotels = _filterHotelByHotelRatings.
                               GetHotelByHotelRatings(model.City, model.StarRatingid
                                                      , model.checkIn, model.checkOut);
                RoomType = RoomTypeById(model.hotelRoomTypeId);
            }


            //Filtered Hotel By Main Search Engine

            else if (model.City != null &&
                     model.checkIn != null &&
                     model.checkOut != null && model.RoomTypeId > 0)
            {
                SearchHotels = _hotelNetworkMainSearchEngine.
                               GetHotelBySearchEngine(model.City,
                                                      model.checkIn, model.checkOut);
                RoomType   = RoomTypeById(model.RoomTypeId);
                TempchkIn  = model.checkIn;
                TempchkOut = model.checkOut;
            }

            foreach (var hotel in SearchHotels)
            {
                var Rooms = _context.hotelRooms
                            .Where(p => p.Hotel.HotelId == hotel.HotelId)
                            .Where(p => p.HotelRoomType.HotelRoomTypeId == RoomType.HotelRoomTypeId).ToList();

                if (Rooms != null)
                {
                    foreach (var room in Rooms)
                    {
                        if (room.IsBooked == false)
                        {
                            RoomCount++;
                        }
                        else if (room.IsBooked == true)
                        {
                            if (_checkOutCheckInImplmentation.
                                Check(room.HotelRoomId, model.checkIn, model.checkOut) == true)
                            {
                                RoomCount++;
                            }
                        }
                    }
                }

                var Averagereview = _context.hotelReviews.
                                    Include(p => p.hotel).Where(p => p.hotel.HotelId == hotel.HotelId).ToList();

                if (Averagereview != null)
                {
                    for (int review = 0; review < Averagereview.Count; review++)
                    {
                        TotalStar = TotalStar + Averagereview[review].ReviewStar;
                    }

                    AverageStar = TotalStar / Averagereview.Count;
                }

                var RoomPrice = _context.hotelRooms.
                                Include(p => p.Hotel).Where(p => p.Hotel.HotelId == hotel.HotelId).ToList();

                if (RoomPrice != null)
                {
                    for (int price = 0; price < RoomPrice.Count; price++)
                    {
                        TotalPrice = TotalPrice + RoomPrice[price].RsPernight;
                    }

                    Averageprice = TotalPrice / (RoomPrice.Count);
                }


                if (RoomCount > 0)
                {
                    hotelModel = new HotelListViewModel()
                    {
                        HotelName       = hotel.HotelName,
                        HotelCity       = model.City,
                        NoOfRoomsFree   = RoomCount,
                        HotelImage      = hotel.HotelImage,
                        HotelId         = hotel.HotelId,
                        ReviewStar      = AverageStar,
                        AveragePrice    = Averageprice,
                        TotalReview     = Averagereview.Count,
                        hotelRoomtype   = RoomType.RoomType,
                        HotelRoomTypeId = RoomType.HotelRoomTypeId,
                    };

                    if (TempchkIn != null && TempchkOut != null)
                    {
                        hotelModel.CheckIn  = TempchkIn;
                        hotelModel.CheckOut = TempchkOut;
                    }


                    hotelList.Add(hotelModel);
                    AverageStar  = 0;
                    Averageprice = 0;
                    TotalPrice   = 0;
                    TotalStar    = 0;
                    RoomCount    = 0;
                }
            }


            return(View(hotelList));
        }
Exemplo n.º 16
0
        //确定
        private void btnOk_Click(object sender, EventArgs e)
        {
            var dc_new = new BathDBDataContext(LogIn.connectionString);

            if (m_open)
            {
                int i = 0;
                foreach (var seat in m_Seats)
                {
                    var seat_tmp = dc_new.HotelRoom.FirstOrDefault(x => x.text == seat.text);
                    var child    = Convert.ToBoolean(dgv.Rows[i].Cells[2].Value);

                    if (!seatlock)
                    {
                        open_one_seat(seat_tmp, child, dc_new);
                    }
                    else
                    {
                        var mtype = dc_new.HotelRoomType.FirstOrDefault(x => x.id == seat_tmp.typeId);
                        if (mtype.menuId == null)
                        {
                            if (seat_tmp.status == 3)
                            {
                                BathClass.reset_seat(seat_tmp);
                                dc_new.SubmitChanges();
                            }

                            seat_tmp.openEmployee = LogIn.m_User.id.ToString();
                            seat_tmp.openTime     = BathClass.Now(LogIn.connectionString);
                            seat_tmp.systemId     = BathClass.systemId(db, LogIn.connectionString);
                            seat_tmp.status       = 2;
                        }

                        seat_tmp.chainId = chainId;
                        HotelRoomType seatType = dc_new.HotelRoomType.FirstOrDefault(x => x.id == seat_tmp.typeId);

                        var menu       = dc_new.Menu.FirstOrDefault(x => x.id == seatType.menuId);
                        var child_menu = dc_new.Menu.FirstOrDefault(x => x.name == "儿童浴资");

                        if (menu != null)
                        {
                            Orders order = new Orders();
                            order.menu          = menu.name;
                            order.text          = seat_tmp.text;
                            order.systemId      = seat_tmp.systemId;
                            order.number        = 1;
                            order.money         = menu.price;
                            order.inputTime     = BathClass.Now(LogIn.connectionString);
                            order.inputEmployee = LogIn.m_User.id.ToString();
                            order.paid          = false;
                            order.departmentId  = 1;
                            dc_new.Orders.InsertOnSubmit(order);

                            if (child)
                            {
                                Orders child_order = new Orders();
                                child_order.menu          = child_menu.name;
                                child_order.text          = seat_tmp.text;
                                child_order.systemId      = seat_tmp.systemId;
                                child_order.number        = 1;
                                child_order.money         = child_menu.price;
                                child_order.inputTime     = BathClass.Now(LogIn.connectionString);
                                child_order.inputEmployee = LogIn.m_User.id.ToString();
                                child_order.paid          = false;
                                order.departmentId        = 1;
                                dc_new.Orders.InsertOnSubmit(child_order);
                            }
                        }
                    }
                    i++;
                }
                dc_new.SubmitChanges();
            }
            else
            {
                foreach (var seat in m_Seats)
                {
                    seat.chainId = chainId;
                }
                db.SubmitChanges();
            }

            this.DialogResult = DialogResult.OK;
        }
Exemplo n.º 17
0
 public ResponseModel Delete(HotelRoomType hotelRoomType)
 {
     return(_hotelRoomTypeRepository.Delete(hotelRoomType));
 }
Exemplo n.º 18
0
 public ResponseModel Update(HotelRoomType hotelRoomType)
 {
     return(_hotelRoomTypeRepository.Update(hotelRoomType));
 }
Exemplo n.º 19
0
 public ResponseModel Insert(HotelRoomType hotelRoomType)
 {
     return(_hotelRoomTypeRepository.Insert(hotelRoomType));
 }
Exemplo n.º 20
0
        /// <summary>
        /// Save HotelRoomType manage model
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ResponseModel SaveHotelRoomTypeManageModel(HotelRoomTypeManageModel model)
        {
            ResponseModel response;
            var           hotelRoomType = GetById(model.Id);

            #region Edit HotelRoomType
            if (hotelRoomType != null)
            {
                hotelRoomType.Name        = model.Name;
                hotelRoomType.Description = model.Description;
                hotelRoomType.Price       = model.Price;
                hotelRoomType.RecordOrder = model.RecordOrder;

                var currentServices = hotelRoomType.HotelRoomServices.Select(rs => rs.ServiceId).ToList();
                foreach (var id in currentServices)
                {
                    if (!model.HotelRoomTypeServiceIds.Contains(id))
                    {
                        _hotelRoomServiceRepository.Delete(id);
                    }
                }
                foreach (var serviceId in model.HotelRoomTypeServiceIds)
                {
                    if (currentServices.All(n => n != serviceId))
                    {
                        var hotelRoomTypeHotelRoomTypeCategory = new HotelRoomService
                        {
                            RoomTypeId = hotelRoomType.Id,
                            ServiceId  = serviceId
                        };
                        _hotelRoomServiceRepository.Insert(hotelRoomTypeHotelRoomTypeCategory);
                    }
                }

                //Get page record order
                response = Update(hotelRoomType);
                return(response.SetMessage(response.Success ?
                                           _localizedResourceServices.T("AdminModule:::HotelRoomTypes:::Messages:::UpdateSuccessfully:::Update HotelRoomType successfully.")
                    : _localizedResourceServices.T("AdminModule:::HotelRoomTypes:::Messages:::UpdateFailure:::Update HotelRoomType failed. Please try again later.")));
            }
            #endregion

            hotelRoomType = new HotelRoomType
            {
                Name        = model.Name,
                Description = model.Description,
                Price       = model.Price,
            };

            response = Insert(hotelRoomType);
            foreach (var serviceId in model.HotelRoomTypeServiceIds)
            {
                var hotelRoomTypeHotelRoomTypeCategory = new HotelRoomService
                {
                    RoomTypeId = hotelRoomType.Id,
                    ServiceId  = serviceId
                };
                _hotelRoomServiceRepository.Insert(hotelRoomTypeHotelRoomTypeCategory);
            }
            return(response.SetMessage(response.Success ?
                                       _localizedResourceServices.T("AdminModule:::HotelRoomTypes:::Messages:::CreateSuccessfully:::Create HotelRoomType successfully.")
                : _localizedResourceServices.T("AdminModule:::HotelRoomTypes:::Messages:::CreateFailure:::Create HotelRoomType failed. Please try again later.")));
        }
        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);
        }