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); } }
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); } }
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)); }
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()); } }
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); } }