private AvailabilityRQ ConvertToHotelBedsSearchRequest(HotelAvailabilityProviderReq request) { Logger.Instance.LogFunctionEntry(this.GetType().Name, "ConvertToHotelBedsSearchRequest"); AvailabilityRQ hotelBedsAvailabilityRQ = new AvailabilityRQ(); if (request.HotelCodes != null && request.HotelCodes.Any()) { hotelBedsAvailabilityRQ.hotels = new HotelsFilter() { hotel = request.HotelCodes.Select(int.Parse).ToList() }; } hotelBedsAvailabilityRQ.stay = new Stay(request.CheckInDate, request.CheckOutDate, 2, true); hotelBedsAvailabilityRQ.occupancies = new List <Occupancy>(); hotelBedsAvailabilityRQ.occupancies.Add(new Occupancy { adults = request.TotalAdults, rooms = HotelBedsConstants.TotalRooms, children = 0, paxes = new List <Pax>() { new Pax { age = HotelBedsConstants.AdultAge, type = com.hotelbeds.distribution.hotel_api_model.auto.common.SimpleTypes.HotelbedsCustomerType.AD } } }); Logger.Instance.LogFunctionExit(this.GetType().Name, "ConvertToHotelBedsSearchRequest"); return(hotelBedsAvailabilityRQ); }
private AvailabilityRQ ConvertToHotelBedsSearchRequest(HotelAvailabilityProviderReq request) { Logger.Instance.LogFunctionEntry(this.GetType().Name, "ConvertToHotelBedsSearchRequest"); AvailabilityRQ hotelBedsAvailabilityRQ = new AvailabilityRQ(); if (request.HotelCodes != null && request.HotelCodes.Any()) { hotelBedsAvailabilityRQ.hotels = new HotelsFilter() { hotel = request.HotelCodes.Select(int.Parse).ToList() }; } hotelBedsAvailabilityRQ.stay = new Stay(request.CheckInDate, request.CheckOutDate, 2, true); hotelBedsAvailabilityRQ.occupancies = new List<Occupancy>(); hotelBedsAvailabilityRQ.occupancies.Add(new Occupancy { adults = request.TotalAdults, rooms = HotelBedsConstants.TotalRooms, children = 0, paxes = new List<Pax>() { new Pax { age = HotelBedsConstants.AdultAge, type = com.hotelbeds.distribution.hotel_api_model.auto.common.SimpleTypes.HotelbedsCustomerType.AD } } }); Logger.Instance.LogFunctionExit(this.GetType().Name, "ConvertToHotelBedsSearchRequest"); return hotelBedsAvailabilityRQ; }
private HotelAvailabilityProviderReq ConvertToProviderReqeust(HotelSearchDto hotelDto) { HotelBedsSearchProvider provider = new HotelBedsSearchProvider(); HotelAvailabilityProviderReq providerReq = new HotelAvailabilityProviderReq(); if (hotelDto != null) { providerReq.CheckInDate = Convert.ToDateTime(hotelDto.StartDate); providerReq.CheckOutDate = Convert.ToDateTime(hotelDto.EndDate); providerReq.MaxRating = hotelDto.MaxRating; providerReq.MinRating = hotelDto.MinRating; //Hotel code should come from search manager class if (hotelDto.HotelCodes != null) { providerReq.HotelCodes = hotelDto.HotelCodes; } else if (hotelDto.Latitude.ToString().Length > 0) { providerReq.GeoLocation = new GeoLocation() { Latitude = Convert.ToDecimal(hotelDto.Latitude), Longitude = Convert.ToDecimal(hotelDto.Longitude) }; } //TODO:RoomDto //providerReq.TotalAdults = Convert.ToInt16(hotelDto.TotalGuest); } return(providerReq); }
public HotelAvailabilityProviderRes Execute(HotelAvailabilityProviderReq request) { //Logger.Instance.LogFunctionEntry(this.GetType().Name, "Execute"); Availability avail = new Availability(); List <Hotel> hotels = new List <Hotel>(); if (request.CheckInDate <= DateTime.Today) { throw new ArgumentOutOfRangeException(nameof(request.CheckInDate)); } if (request.CheckInDate >= request.CheckOutDate) { throw new ArgumentOutOfRangeException(nameof(request.CheckOutDate)); } if (request.TotalAdults < HotelBedsConstants.TotalAdults) { throw new ArgumentOutOfRangeException(nameof(request.TotalAdults)); } //Check if #of nights are more than 30, if so throw exception var duration = (request.CheckOutDate - request.CheckInDate).TotalDays; if (duration > HotelBedsConstants.NightsDuration) { throw new ArgumentOutOfRangeException(nameof(duration)); } HotelAvailabilityProviderRes hotelSearchResults; using (var hotelBedsworker = new HotelBedsWorker()) { //convert the request dto to the HotelBeds search api payload AvailabilityRQ hotelBedsSearchRq = ConvertToHotelBedsSearchRequest(request); try { var hotelBedsHotels = hotelBedsworker.GetAvailability <AvailabilityRQ, AvailabilityRS>(hotelBedsSearchRq); //Check if we need to check .hotels == null if (hotelBedsHotels.hotels == null) { //throw new ProviderUnavailableException(ProviderTypes.HotelBeds.ToString(), $"No response to {nameof(AvailabilityRQ)}.", null); throw new ProviderUnavailableException(ProviderTypes.HotelBeds.ToString(), hotelBedsHotels.error.message.ToString(), null); } hotelSearchResults = ConvertToProviderResponse(hotelBedsHotels); } catch (HotelBedsProviderException e) { if (e.HasKnownError(HotelBedsProviderException.HotelKnownError.NoListings)) { hotelSearchResults = new HotelAvailabilityProviderRes(); } else { throw; } } } //Logger.Instance.LogFunctionExit(this.GetType().Name, "Execute"); return(hotelSearchResults); }
public HotelAvailabilityProviderRes Execute(HotelAvailabilityProviderReq request) { //Logger.Instance.LogFunctionEntry(this.GetType().Name, "Execute"); Availability avail = new Availability(); List<Hotel> hotels = new List<Hotel>(); if (request.CheckInDate <= DateTime.Today) { throw new ArgumentOutOfRangeException(nameof(request.CheckInDate)); } if (request.CheckInDate >= request.CheckOutDate) { throw new ArgumentOutOfRangeException(nameof(request.CheckOutDate)); } if (request.TotalAdults < HotelBedsConstants.TotalAdults) { throw new ArgumentOutOfRangeException(nameof(request.TotalAdults)); } //Check if #of nights are more than 30, if so throw exception var duration = (request.CheckOutDate - request.CheckInDate).TotalDays; if (duration > HotelBedsConstants.NightsDuration) { throw new ArgumentOutOfRangeException(nameof(duration)); } HotelAvailabilityProviderRes hotelSearchResults; using (var hotelBedsworker = new HotelBedsWorker()) { //convert the request dto to the HotelBeds search api payload AvailabilityRQ hotelBedsSearchRq = ConvertToHotelBedsSearchRequest(request); try { var hotelBedsHotels = hotelBedsworker.GetAvailability<AvailabilityRQ, AvailabilityRS>(hotelBedsSearchRq); //Check if we need to check .hotels == null if (hotelBedsHotels.hotels == null) { //throw new ProviderUnavailableException(ProviderTypes.HotelBeds.ToString(), $"No response to {nameof(AvailabilityRQ)}.", null); throw new ProviderUnavailableException(ProviderTypes.HotelBeds.ToString(), hotelBedsHotels.error.message.ToString(), null); } hotelSearchResults = ConvertToProviderResponse(hotelBedsHotels); } catch (HotelBedsProviderException e) { if (e.HasKnownError(HotelBedsProviderException.HotelKnownError.NoListings)) { hotelSearchResults = new HotelAvailabilityProviderRes(); } else { throw; } } } //Logger.Instance.LogFunctionExit(this.GetType().Name, "Execute"); return hotelSearchResults; }
private AvailabilityRQ ConvertToHotelBedsSearchRequest(HotelAvailabilityProviderReq request) { AvailabilityRQ hotelBedsAvailabilityRQ = new AvailabilityRQ(); if (request.HotelCodes != null && request.HotelCodes.Any()) { hotelBedsAvailabilityRQ.hotels = new HotelsFilter() { hotel = request.HotelCodes.Select(int.Parse).ToList() }; } else { var gLocation = request.GeoLocation; hotelBedsAvailabilityRQ.geolocation = new com.hotelbeds.distribution.hotel_api_model.auto.model.GeoLocation { latitude = gLocation.HasValue ? Convert.ToDouble(gLocation.Value.Latitude) : 0, longitude = gLocation.HasValue ? Convert.ToDouble(gLocation.Value.Longitude) : 0, radius = HotelBedsConstants.RadiusLimit, unit = com.hotelbeds.distribution.hotel_api_model.util.UnitMeasure.UnitMeasureType.km }; } hotelBedsAvailabilityRQ.filter = new Filter { minCategory = HotelBedsConstants.MinRating, //request.MinRating, maxCategory = HotelBedsConstants.MaxRating //request.MaxRating }; hotelBedsAvailabilityRQ.stay = new Stay(request.CheckInDate, request.CheckOutDate, 0, true); hotelBedsAvailabilityRQ.occupancies = new List <Occupancy>(); hotelBedsAvailabilityRQ.occupancies.Add(new Occupancy { adults = request.TotalAdults, rooms = HotelBedsConstants.TotalRooms, children = 0, paxes = new List <Pax>() { new Pax { age = HotelBedsConstants.AdultAge, type = com.hotelbeds.distribution.hotel_api_model.auto.common.SimpleTypes.HotelbedsCustomerType.AD } } }); return(hotelBedsAvailabilityRQ); }
// GET api/<controller> public HotelAvailabilityProviderRes Get() { TouricoHotelSearchProvider searchProvider = new TouricoHotelSearchProvider(); HotelAvailabilityProviderReq request = new HotelAvailabilityProviderReq(); request.CheckInDate = DateTime.Now.AddDays(3).Date; request.CheckOutDate = DateTime.Now.AddDays(5).Date; request.HotelCodes = new System.Collections.Generic.List<string> { "8198" }; //TODO: //request.TotalAdults = 2; HotelAvailabilityProviderRes res = searchProvider.Search(request); return res; }
public HotelAvailabilityProviderRes Execute(HotelAvailabilityProviderReq request) { Logger.Instance.LogFunctionEntry(this.GetType().Name, "Execute"); Availability avail = new Availability(); List <Hotel> hotels = new List <Hotel>(); if (request.CheckInDate <= DateTime.Today) { throw new ArgumentOutOfRangeException(nameof(request.CheckInDate)); } if (request.CheckInDate >= request.CheckOutDate) { throw new ArgumentOutOfRangeException(nameof(request.CheckOutDate)); } if (request.TotalAdults < 1) { throw new ArgumentOutOfRangeException(nameof(request.TotalAdults)); } HotelAvailabilityProviderRes hotelSearchResults; using (var hotelBedsworker = new HotelBedsWorker()) { //convert the request dto to the Hot Beds search api payload AvailabilityRQ hotelBedsSearchRq = ConvertToHotelBedsSearchRequest(request); try { var hotelBedsHotels = hotelBedsworker.GetHotelDetails(hotelBedsSearchRq); hotelSearchResults = ConvertToProviderResponse(hotelBedsHotels); if (hotelSearchResults == null) { throw new ProviderUnavailableException(ProviderTypes.HotelBeds.ToString(), $"No response to {nameof(AvailabilityRQ)}.", null); } } catch (Exception) { throw; } } Logger.Instance.LogFunctionExit(this.GetType().Name, "Execute"); return(hotelSearchResults); }
public HotelAvailabilityProviderRes Execute(HotelAvailabilityProviderReq request) { Logger.Instance.LogFunctionEntry(this.GetType().Name, "Execute"); Availability avail = new Availability(); List<Hotel> hotels = new List<Hotel>(); if (request.CheckInDate <= DateTime.Today) { throw new ArgumentOutOfRangeException(nameof(request.CheckInDate)); } if (request.CheckInDate >= request.CheckOutDate) { throw new ArgumentOutOfRangeException(nameof(request.CheckOutDate)); } if (request.TotalAdults < 1) { throw new ArgumentOutOfRangeException(nameof(request.TotalAdults)); } HotelAvailabilityProviderRes hotelSearchResults; using (var hotelBedsworker = new HotelBedsWorker()) { //convert the request dto to the Hot Beds search api payload AvailabilityRQ hotelBedsSearchRq = ConvertToHotelBedsSearchRequest(request); try { var hotelBedsHotels = hotelBedsworker.GetHotelDetails(hotelBedsSearchRq); hotelSearchResults = ConvertToProviderResponse(hotelBedsHotels); if (hotelSearchResults == null) { throw new ProviderUnavailableException(ProviderTypes.HotelBeds.ToString(), $"No response to {nameof(AvailabilityRQ)}.", null); } } catch (Exception) { throw; } } Logger.Instance.LogFunctionExit(this.GetType().Name, "Execute"); return hotelSearchResults; }
// GET api/<controller> public HotelAvailabilityProviderRes Get() { TouricoHotelSearchProvider searchProvider = new TouricoHotelSearchProvider(); HotelAvailabilityProviderReq request = new HotelAvailabilityProviderReq(); request.CheckInDate = DateTime.Now.AddDays(3).Date; request.CheckOutDate = DateTime.Now.AddDays(5).Date; request.HotelCodes = new System.Collections.Generic.List <string> { "8198" }; //TODO: //request.TotalAdults = 2; HotelAvailabilityProviderRes res = searchProvider.Search(request); return(res); }
// // GET: /BBHotelDetails/ public ActionResult Index(FormCollection collection) { HotelBedsDetailsHandler hotelInfo = new HotelBedsDetailsHandler(); HotelAvailabilityProviderReq providerReq = new HotelAvailabilityProviderReq(); HotelSearchDto searchCriteria = new HotelSearchDto(); searchCriteria.HotelCodes = collection["hotelCode"]; searchCriteria.StartDate = collection["checkIn"]; searchCriteria.EndDate = collection["checkOut"]; Hotel hotelfiltered = new Hotel(); providerReq.CheckInDate = Convert.ToDateTime(collection["checkIn"]); providerReq.CheckOutDate = Convert.ToDateTime(collection["checkOut"]); providerReq.TotalAdults = Convert.ToInt32(collection["totalTravellers"]); providerReq.TotalRooms = Convert.ToInt32(collection["totalRooms"]); if (searchCriteria.HotelCodes.Length > 0) { providerReq.HotelCodes = searchCriteria.HotelCodes.Split(' ').ToList<string>(); } var hotelinfoRS = hotelInfo.Execute(providerReq).Hotels.FirstOrDefault(); return View(hotelinfoRS); }
// // GET: /BBHotelDetails/ public ActionResult Index(FormCollection collection) { HotelBedsDetailsHandler hotelInfo = new HotelBedsDetailsHandler(); HotelAvailabilityProviderReq providerReq = new HotelAvailabilityProviderReq(); HotelSearchDto searchCriteria = new HotelSearchDto(); searchCriteria.HotelCodes = collection["hotelCode"]; searchCriteria.StartDate = collection["checkIn"]; searchCriteria.EndDate = collection["checkOut"]; Hotel hotelfiltered = new Hotel(); providerReq.CheckInDate = Convert.ToDateTime(collection["checkIn"]); providerReq.CheckOutDate = Convert.ToDateTime(collection["checkOut"]); providerReq.TotalAdults = Convert.ToInt32(collection["totalTravellers"]); providerReq.TotalRooms = Convert.ToInt32(collection["totalRooms"]); if (searchCriteria.HotelCodes.Length > 0) { providerReq.HotelCodes = searchCriteria.HotelCodes.Split(' ').ToList <string>(); } var hotelinfoRS = hotelInfo.Execute(providerReq).Hotels.FirstOrDefault(); return(View(hotelinfoRS)); }
private AvailabilityRQ ConvertToHotelBedsSearchRequest(HotelAvailabilityProviderReq request) { AvailabilityRQ hotelBedsAvailabilityRQ = new AvailabilityRQ(); if (request.HotelCodes != null && request.HotelCodes.Any()) { hotelBedsAvailabilityRQ.hotels = new HotelsFilter() { hotel = request.HotelCodes.Select(int.Parse).ToList() }; } else { hotelBedsAvailabilityRQ.geolocation = new com.hotelbeds.distribution.hotel_api_model.auto.model.GeoLocation { latitude = Convert.ToDouble(40.71), longitude = Convert.ToDouble(74.00), radius = HotelBedsConstants.RadiusLimit, unit = com.hotelbeds.distribution.hotel_api_model.util.UnitMeasure.UnitMeasureType.km }; } hotelBedsAvailabilityRQ.filter = new Filter { minCategory = request.MinRating, maxCategory = request.MaxRating }; hotelBedsAvailabilityRQ.stay = new Stay(request.CheckInDate, request.CheckOutDate, 0, true); hotelBedsAvailabilityRQ.occupancies = new List<Occupancy>(); hotelBedsAvailabilityRQ.occupancies.Add(new Occupancy { adults = request.TotalAdults, rooms = HotelBedsConstants.TotalRooms, children = 0, paxes = new List<Pax>() { new Pax { age = HotelBedsConstants.AdultAge, type = com.hotelbeds.distribution.hotel_api_model.auto.common.SimpleTypes.HotelbedsCustomerType.AD } } }); return hotelBedsAvailabilityRQ; }
public HotelAvailabilityProviderRes Search(HotelAvailabilityProviderReq request) { var response = new HotelBedsAvailabilityHandler().Execute(request); return(response); }
private HotelAvailabilityProviderReq ConvertToProviderReqeust(HotelSearchDto hotelDto) { HotelBedsSearchProvider provider = new HotelBedsSearchProvider(); HotelAvailabilityProviderReq providerReq = new HotelAvailabilityProviderReq(); if (hotelDto != null) { providerReq.CheckInDate = Convert.ToDateTime(hotelDto.StartDate); providerReq.CheckOutDate = Convert.ToDateTime(hotelDto.EndDate); providerReq.MaxRating = hotelDto.MaxRating; providerReq.MinRating = hotelDto.MinRating; //Hotel code should come from search manager class if (hotelDto.HotelCodes != null) { providerReq.HotelCodes = hotelDto.HotelCodes; } else if (hotelDto.Latitude.ToString().Length > 0) { providerReq.GeoLocation = new GeoLocation() { Latitude = Convert.ToDecimal(hotelDto.Latitude), Longitude = Convert.ToDecimal(hotelDto.Longitude) }; } //TODO:RoomDto //providerReq.TotalAdults = Convert.ToInt16(hotelDto.TotalGuest); } return providerReq; }
public ActionResult SearchHotel(FormCollection collection) { HotelSearchDto hotelDto = TempData["HotelSearchDto"] as HotelSearchDto; HotelBedsSearchProvider provider = new HotelBedsSearchProvider(); HotelAvailabilityProviderReq providerReq = new HotelAvailabilityProviderReq(); if (hotelDto != null) { // List<Tuple<string, string>> param; Availability avail = new Availability(); //avail.checkIn = Convert.ToDateTime(collection["checkIn"]); avail.checkIn = Convert.ToDateTime(hotelDto.StartDate); //avail.checkOut = Convert.ToDateTime(collection["checkOut"]); avail.checkOut = Convert.ToDateTime(hotelDto.EndDate); //var address = collection["add"]; var address = hotelDto.Address; ViewBag.checkIn = avail.checkIn; ViewBag.checkOut = avail.checkOut; //avail.destination = "PMI"; //avail.zone = 90; avail.language = "CAS"; avail.shiftDays = 2; AvailRoom room = new AvailRoom(); //room.adults = Convert.ToInt32(collection["ddlTotalGuest"]); room.adults = Convert.ToInt32(hotelDto.TotalGuest); ViewBag.GuestNo = room.adults; room.children = 0; //Hotel code should come from search manager class if (hotelDto.HotelCodes != null) { providerReq.HotelCodes = hotelDto.HotelCodes.Split(',').ToList<string>(); } else if (hotelDto.Latitude.ToString().Length > 0) { providerReq.GeoLocation = new HotelBeds.ServiceCatalogues.HotelCatalog.Dtos.GeoLocation() { Latitude = Convert.ToDecimal(hotelDto.Latitude), Longitude = Convert.ToDecimal(hotelDto.Longitude) }; } ViewBag.LatOrg = hotelDto.Latitude; ViewBag.LanOrg = hotelDto.Longitude; providerReq.TotalAdults = Convert.ToInt16(hotelDto.TotalGuest); ViewBag.TotalTravellers = providerReq.TotalAdults; providerReq.TotalRooms = Convert.ToInt16(hotelDto.TotalRoom); ViewBag.TotalRooms = providerReq.TotalRooms; try { //Call provider not handler var hotels = provider.Search(providerReq).Hotels; if (hotels != null) return View(hotels); else return null; } catch (Exception ex) { ViewBag.error = ex.Message; return View(); } } else { return View("Home"); } }
//SearchHotelById - returns list of Hotels based on hotelCodes[] public HotelAvailabilityProviderRes Search(HotelAvailabilityProviderReq request) { var response = new TouricoHotelAvailabilityHandler().Execute(request); return response; }
public ActionResult SearchHotel(FormCollection collection) { HotelSearchDto hotelDto = TempData["HotelSearchDto"] as HotelSearchDto; HotelBedsSearchProvider provider = new HotelBedsSearchProvider(); HotelAvailabilityProviderReq providerReq = new HotelAvailabilityProviderReq(); if (hotelDto != null) { // List<Tuple<string, string>> param; Availability avail = new Availability(); //avail.checkIn = Convert.ToDateTime(collection["checkIn"]); avail.checkIn = Convert.ToDateTime(hotelDto.StartDate); //avail.checkOut = Convert.ToDateTime(collection["checkOut"]); avail.checkOut = Convert.ToDateTime(hotelDto.EndDate); //var address = collection["add"]; var address = hotelDto.Address; ViewBag.checkIn = avail.checkIn; ViewBag.checkOut = avail.checkOut; //avail.destination = "PMI"; //avail.zone = 90; avail.language = "CAS"; avail.shiftDays = 2; AvailRoom room = new AvailRoom(); //room.adults = Convert.ToInt32(collection["ddlTotalGuest"]); room.adults = Convert.ToInt32(hotelDto.TotalGuest); ViewBag.GuestNo = room.adults; room.children = 0; //Hotel code should come from search manager class if (hotelDto.HotelCodes != null) { providerReq.HotelCodes = hotelDto.HotelCodes.Split(',').ToList <string>(); } else if (hotelDto.Latitude.ToString().Length > 0) { providerReq.GeoLocation = new HotelBeds.ServiceCatalogues.HotelCatalog.Dtos.GeoLocation() { Latitude = Convert.ToDecimal(hotelDto.Latitude), Longitude = Convert.ToDecimal(hotelDto.Longitude) }; } ViewBag.LatOrg = hotelDto.Latitude; ViewBag.LanOrg = hotelDto.Longitude; providerReq.TotalAdults = Convert.ToInt16(hotelDto.TotalGuest); ViewBag.TotalTravellers = providerReq.TotalAdults; providerReq.TotalRooms = Convert.ToInt16(hotelDto.TotalRoom); ViewBag.TotalRooms = providerReq.TotalRooms; try { //Call provider not handler var hotels = provider.Search(providerReq).Hotels; if (hotels != null) { return(View(hotels)); } else { return(null); } } catch (Exception ex) { ViewBag.error = ex.Message; return(View()); } } else { return(View("Home")); } }