public JsonResult Index(List<HotelDistanceViewModel> hotels, string destinationId, int? page) { // Information about the Destination Id, // This will return Lat/Lon of the destination ID LocationInfoRequest locationInfoRequest = new LocationInfoRequest() {DestinationId = destinationId}; LocationInfoResponse locationInfoResponse = _expediaService.GetGeoSearch(locationInfoRequest); if (locationInfoResponse != null) { if (locationInfoResponse.EanWsError == null) { if (locationInfoResponse.LocationInfos.LocationInfo.Any(info => info.DestinationId == destinationId)) { var destinationInfo = locationInfoResponse.LocationInfos.LocationInfo.First(info => info.DestinationId == destinationId); var projection = hotels.Select(hotel => new { HotelId = hotel.HotelId, Distance = GetDistance(hotel, destinationInfo) }); return Json(new { Landmark = destinationInfo.Description, Hotels = projection.ToList() }); } } } return new JsonResult(); }
public override LocationInfoResponse GetGeoSearch(LocationInfoRequest locationInfoRequest) { string path = PathFor("LocationInfoResponse.json"); string content = Regex.Replace(File.ReadAllText(path), ""); JsonDeserializer jsonDeserializer = new JsonDeserializer() { RootElement = "LocationInfoResponse" }; LocationInfoResponse locationInfoResponse = jsonDeserializer.Deserialize<LocationInfoResponse>(new RestResponse() {Content = content}); return locationInfoResponse; }
public abstract LocationInfoResponse GetGeoSearch(LocationInfoRequest locationInfoRequest);
public JsonResult Landmarks(string destinationString) { LocationInfoRequest request = new LocationInfoRequest(); request.DestinationString = destinationString; try { LocationInfoResponse response = _expediaService.GetGeoSearch(request); var landmarks = response.LocationInfos.LocationInfo .Where(info => info.Active && info.GeoAccuracy >= 1 && info.LocationInDestination && info.ActivePropertyCount > 0) .Select(info => new { destinationId = info.DestinationId, description = info.Description }) .OrderBy(arg => arg.description) // Order by landmark description .ToList(); return Json(landmarks, JsonRequestBehavior.AllowGet); } catch (Exception e) { Debug.WriteLine(e.Message); } return new JsonResult(); }