Beispiel #1
0
        public static void MapResponseToDB(AvailabilityRes value, string SessionID)
        {
            try {
                HotelBedEntities     db           = new HotelBedEntities();
                AvailabilityResponse availability = new AvailabilityResponse();
                availability.Currency   = value.hotel.currency;
                availability.TotalPrice = value.hotel.totalNet;
                availability.response   = Newtonsoft.Json.JsonConvert.SerializeObject(value.hotel);
                availability.SearchID   = SessionID;
                var hotel = db.SearchHotelDatas.FirstOrDefault(a => a.SessionID == SessionID);
                availability.SearchHotelID = hotel.Id;
                db.AvailabilityResponses.Add(availability);
                db.SaveChanges();
                foreach (var room in value.hotel.rooms)
                {
                    foreach (var rate in room.rates)
                    {
                        SearchRoom searchRoom = new SearchRoom();
                        searchRoom.adults = rate.adults;

                        searchRoom.boardCode      = rate.boardCode;
                        searchRoom.boardName      = rate.boardName;
                        searchRoom.children       = rate.children;
                        searchRoom.childrenAges   = rate.childrenAges;
                        searchRoom.hotelMandatory = rate.hotelMandatory.ToString();
                        searchRoom.netPrice       = rate.net;
                        searchRoom.packaging      = rate.packaging.ToString();
                        searchRoom.paymentType    = rate.paymentType;
                        searchRoom.rateClass      = rate.rateClass;
                        searchRoom.rateKey        = rate.rateKey;
                        searchRoom.rateType       = rate.rateType;
                        searchRoom.ResponseType   = "availability";
                        searchRoom.RoomCode       = room.code;
                        searchRoom.RoomName       = room.name;
                        searchRoom.rooms          = rate.rooms;
                        searchRoom.SearchHotelID  = availability.ID;
                        searchRoom.sessionID      = SessionID;
                        searchRoom.sellingRate    = rate.sellingRate;
                        db.SearchRooms.Add(searchRoom);
                        db.SaveChanges();
                        foreach (var p in rate.cancellationPolicies)
                        {
                            RoomPolicy policy = new RoomPolicy();
                            policy.amount      = p.amount;
                            policy.fromDate    = p.from.ToString();;
                            policy.RoomID      = searchRoom.Id;
                            policy.CallingType = "check";
                            db.RoomPolicies.Add(policy);
                        }
                        db.SaveChanges();
                    }
                }
            }
            catch (Exception ex)
            {
                var requestData = JsonConvert.SerializeObject(ex);

                LogData.WriteToFile("c:/HotelsB2C/Logs/HBLogs/AvailabilityException", "AvailabilityException_" + SessionID, "AvailabilityException", requestData);
            }
        }
Beispiel #2
0
        public RestCriteraiData GetDataForGatewayDA(string BN)
        {
            try
            {
                SearchDBEntities       searchDB       = new SearchDBEntities();
                HotelBookingDBEntities hotelBookingDB = new HotelBookingDBEntities();
                hotelsDBEntities       hotelsDB       = new hotelsDBEntities();
                SearchData             searchData     = new SearchData();
                RestCriteraiData       restCriterai   = new RestCriteraiData();
                var booking = hotelBookingDB.HotelsBookings.FirstOrDefault(x => x.Booking_No == BN);

                var search = searchDB.SearchCriterias.FirstOrDefault(a => a.sID == booking.SessionId);
                restCriterai.searchData          = new SearchData();
                restCriterai.searchData.CityName = search.cityName;
                restCriterai.searchData.Currency = search.currency;
                restCriterai.searchData.DateFrom = search.dateFrom.Value;
                restCriterai.searchData.DateTo   = search.dateTo.Value;
                restCriterai.searchData.Lang     = search.language;
                restCriterai.searchData.Nat      = search.passengerNationality;
                restCriterai.searchData.POS      = search.pos;
                restCriterai.pos               = search.pos;
                restCriterai.searchData.sID    = search.sID;
                restCriterai.searchData.Source = search.source;
                var Rooms = searchDB.SearchRoomDatas.Where(a => a.sID == booking.SessionId).ToList();
                foreach (var item in Rooms)
                {
                    SearchRoom searchRoom = new SearchRoom();
                    searchRoom.Adult = item.adultNo.Value;
                    for (int i = 0; i < item.childernNo.Value; i++)
                    {
                        searchRoom.Child.Add(2);
                    }
                    restCriterai.searchData.SearchRooms.Add(searchRoom);
                }
                // var booking = hotelBookingDB.HotelsBookings.FirstOrDefault(x => x.SessionId == Sid && x.Booking_No == BN);
                restCriterai.cost = booking.Sell_Price.Value;
                restCriterai.Curr = booking.Sell_Currency;
                restCriterai.Pid  = booking.Provider_ID;
                if (restCriterai.Pid == "5")
                {
                    TBOContext bOContext = new TBOContext();
                    var        Hotel     = bOContext.HotelDetails.FirstOrDefault(a => a.HotelCode == booking.Hotel_ID);
                    restCriterai.HotelName = Hotel.HotelName;
                    //restCriterai.HotelStars = int.Parse(Hotel.rating);
                }
                else if (restCriterai.Pid == "4")
                {
                    var Hotel = hotelsDB.hotels.FirstOrDefault(a => a.hotelID == booking.Hotel_ID);
                    restCriterai.HotelName  = Hotel.hotelName;
                    restCriterai.HotelStars = int.Parse(Hotel.rating);
                }

                return(restCriterai);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Beispiel #3
0
        public async Task <IActionResult> SearchRoom(SearchRoom searchroom)
        {
            // prepare the parameters to be inserted into the query
            var bedCountA = new SqliteParameter("bed", searchroom.userBedCount);
            var checkInA  = new SqliteParameter("in", searchroom.userCheckIn);
            var checkOutA = new SqliteParameter("out", searchroom.userCheckOut);
            var getRooms  = _context.Room.FromSql("select * from [Room] where [Room].BedCount=@bed in"
                                                  + "(select [Booking].RoomID from [Booking] inner join [Room] on [Room].ID = [Booking].RoomID"
                                                  + " where  [Booking].CheckIN < @out and [Booking].CheckOut >@in )", bedCountA, checkInA, checkOutA)
                            .Select(mo => new Room {
                ID = mo.ID, Level = mo.Level, BedCount = mo.BedCount, Price = mo.Price
            });

            ViewBag.GetRooms = await getRooms.ToListAsync();

            return(View(searchroom));
        }
        public async Task <IActionResult> SearchRoom(SearchRoom search)
        {
            var dateIn   = new SqliteParameter("dayIn", search.CheckIn);
            var dateOut  = new SqliteParameter("dayOut", search.CheckOut);
            var bedCount = new SqliteParameter("bed", search.BedCount);

            var searchRoom = _context.Room.FromSqlRaw("select [Room].ID, [Room].Level, [Room].BedCount, [Room].Price from [Room] inner join [Booking] on [Room].ID = [Booking].RoomID "
                                                      + "where [Room].BedCount = @bed "
                                                      + "and [Room].ID not in "
                                                      + "(select [Room].ID from [Room] inner join [Booking] on [Room].ID = [Booking].RoomID "
                                                      + "where ([Booking].CheckIn between @dayIn and @dayOut or [Booking].CheckOut between @dayIn and @dayOut) or "
                                                      + "(@dayIn between [Booking].CheckIn and [Booking].CheckOut and @dayOut between [Booking].CheckIn and [Booking].CheckOut))", bedCount, dateIn, dateOut)
                             .Select(ro => new Room {
                ID = ro.ID, Level = ro.Level, BedCount = ro.BedCount, Price = ro.Price
            }).Distinct();

            ViewBag.SearchRoom = await searchRoom.ToListAsync();

            return(View(search));
        }
Beispiel #5
0
        public IQueryable <Room> SearchRooms([FromUri] SearchRoom search)
        {
            IQueryable <Room> allRooms = db.Rooms;

            if (search.City != null)
            {
                allRooms = allRooms.Where(r => r.City == search.City);
            }

            if (search.Zip != null)
            {
                allRooms = allRooms.Where(r => r.Zip == search.Zip);
            }

            if (search.MaxPrice > 0)
            {
                allRooms = allRooms.Where(r => r.Price <= search.MaxPrice);
            }

            if (search.GuestLimit > 0)
            {
                allRooms = allRooms.Where(r => r.GuestLimit <= search.GuestLimit);
            }

            if (search.KeyWord != null)
            {
                allRooms = allRooms.Where(r => r.Description.Contains(search.KeyWord));
            }

            if (search.Private == true)
            {
                allRooms = allRooms.Where(r => r.Private == true);
            }

            return(allRooms);
        }
        /// <summary>
        /// Action principal.
        /// </summary>
        /// <param name="busca">Recebe exatamente todos os parâmetros que são realizados na busca.</param>
        /// <returns>Realiza o retorno para a view Index desse controller. Nela também são passadaws ViewBags para alimentar o dropdownlist e a table</returns>
        public async Task <IActionResult> Index(Busca busca)
        {
            if (busca.Cidades != null)
            {
                int destination;
                if (busca.Cidades.Contains("MIAMI"))
                {
                    destination = 1003944;
                }
                else
                {
                    destination = 1010106;
                }

                List <string> idades = new List <string>();
                if (busca.IdadeCriancas != null)
                {
                    idades = busca.IdadeCriancas.Split(';').ToList();
                }

                List <int> idadesInt;

                try
                {
                    idadesInt = idades.Select(int.Parse).ToList();
                }
                catch (Exception)
                {
                    throw new System.ArgumentException("Só são aceitos números e ; para as idades das crianças");
                }


                var searchRoom = new SearchRoom()
                {
                    ChildAges = idadesInt,
                    NumAdults = busca.QtdAdultos,
                    Quantity  = busca.QtdQuartos
                };

                var credential = new Credential()
                {
                    Username = "******",
                    Password = "******"
                };

                var criteria = new Criteria()
                {
                    DestinationId = destination,
                    NumNights     = busca.QtdNoites,
                    CheckinDate   = busca.DataCheckIn.ToString("yyyy-MM-dd"),
                    MainPaxCountryCodeNationality = "BR",
                    SearchRooms = new List <SearchRoom>()
                    {
                        searchRoom
                    }
                };

                var hoteis = await CreateHotelAsync(criteria, credential);

                List <string> cidades = busca.GetCidades();

                ViewBag.Cidades = new SelectList(cidades);
                ViewBag.Hoteis  = hoteis;

                return(View());
            }
            else
            {
                Busca         busca2  = new Busca();
                List <string> cidades = busca2.GetCidades();

                ViewBag.Cidades = new SelectList(cidades);
                ViewBag.Hoteis  = new List <HoteisFormatados>();

                return(View());
            }
        }
Beispiel #7
0
        public static void MapResponseToDB(HotelBedsIntegration.Models.Hotels value, string SessionID)
        {
            try {
                HotelBedEntities db = new HotelBedEntities();
                foreach (var item in value.hotels)
                {
                    SearchHotelData searchHotel = new SearchHotelData();
                    searchHotel.CategoryCode    = item.categoryCode;
                    searchHotel.CategoryName    = item.categoryName;
                    searchHotel.checkIn         = value.checkIn;
                    searchHotel.checkOut        = value.checkOut;
                    searchHotel.Code            = item.code;
                    searchHotel.currency        = item.currency;
                    searchHotel.destinationCode = item.destinationCode;
                    searchHotel.DestinationName = item.destinationName;
                    searchHotel.latitude        = item.latitude;
                    searchHotel.longitude       = item.longitude;
                    searchHotel.maxRate         = item.maxRate;
                    searchHotel.minRate         = item.minRate;
                    searchHotel.Name            = item.name;
                    searchHotel.SessionID       = SessionID;
                    searchHotel.total           = value.total.ToString();
                    searchHotel.ZoneCode        = item.zoneCode.ToString();
                    searchHotel.ZoneName        = item.zoneName;
                    searchHotel.Request         = Newtonsoft.Json.JsonConvert.SerializeObject(value);
                    db.SearchHotelDatas.Add(searchHotel);
                    db.SaveChanges();

                    foreach (var room in item.rooms)
                    {
                        foreach (var rate in room.rates)
                        {
                            SearchRoom searchRoom = new SearchRoom();
                            searchRoom.adults         = rate.adults;
                            searchRoom.allotment      = rate.allotment;
                            searchRoom.boardCode      = rate.boardCode;
                            searchRoom.boardName      = rate.boardName;
                            searchRoom.children       = rate.children;
                            searchRoom.childrenAges   = rate.childrenAges;
                            searchRoom.hotelMandatory = rate.hotelMandatory.ToString();
                            searchRoom.netPrice       = rate.net;
                            searchRoom.packaging      = rate.packaging.ToString();
                            searchRoom.paymentType    = rate.paymentType;
                            searchRoom.rateClass      = rate.rateClass;
                            searchRoom.rateKey        = rate.rateKey;
                            searchRoom.rateType       = rate.rateType;
                            searchRoom.ResponseType   = "search";
                            searchRoom.RoomCode       = room.code;
                            searchRoom.RoomName       = room.name;
                            searchRoom.rooms          = rate.rooms;
                            searchRoom.SearchHotelID  = searchHotel.Id;
                            searchRoom.sessionID      = SessionID;
                            searchRoom.sellingRate    = rate.sellingRate;
                            db.SearchRooms.Add(searchRoom);
                            db.SaveChanges();
                            foreach (var tax in rate.taxes.taxes)
                            {
                                RoomTax roomTax = new RoomTax();
                                roomTax.amount   = tax.amount;
                                roomTax.Currency = tax.currency;
                                roomTax.RoomId   = searchRoom.Id;
                                roomTax.included = tax.included.ToString();
                                db.RoomTaxes.Add(roomTax);
                            }
                            foreach (var policy in rate.cancellationPolicies)
                            {
                                RoomPolicy roomPol = new RoomPolicy();
                                roomPol.amount      = policy.amount;
                                roomPol.CallingType = "Search";
                                roomPol.Currency    = searchHotel.currency;
                                roomPol.fromDate    = policy.from.ToString();
                                roomPol.RoomID      = searchRoom.Id;
                            }
                            db.SaveChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                var requestData = JsonConvert.SerializeObject(ex);

                LogData.WriteToFile("c:/HotelsB2C/Logs/HBLogs/SearchException", "SearchException_" + SessionID, "SearchException", requestData);
            }
        }