public List <Parking> GetParkingsByBusiness(string businessId, string businessType) { long id; if (!long.TryParse(businessId, out id)) { WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.BadRequest; return(null); } List <Parking> parkings; using (var dataAccess = new ParkingDataAccess()) { parkings = dataAccess.GetParkingByBusiness(id).ToList(); } if (!parkings.Any()) { using (var query = FacebookQueryFactory.CreateQuery()) { var dictionary = query.Select("latitude", "longitude").From(FacebookTable.Place).WhereId(id).Execute(); if (dictionary == null) { WebOperationContext.Current.OutgoingResponse.SetStatusAsNotFound("Business not found"); return(null); } var geo = new GeoPoint(double.Parse(dictionary["longitude"]), double.Parse(dictionary["latitude"])); using (var dataAccess = new ParkingDataAccess()) { parkings = dataAccess.GetParkingsByGeo(geo, 1000, 10).ToList(); var business = new Business() { BusinessType = BusinessType.Facebook, FacebookId = id, }; parkings.ForEach(business.RecommendedParkings.Add); dataAccess.AddBusiness(business); } } } return(parkings); }
public List<Parking> GetParkingsByBusiness(string businessId, string businessType) { long id; if (!long.TryParse(businessId, out id)) { WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.BadRequest; return null; } List<Parking> parkings; using (var dataAccess = new ParkingDataAccess()) { parkings = dataAccess.GetParkingByBusiness(id).ToList(); } if (!parkings.Any()) { using (var query = FacebookQueryFactory.CreateQuery()) { var dictionary = query.Select("latitude", "longitude").From(FacebookTable.Place).WhereId(id).Execute(); if (dictionary == null) { WebOperationContext.Current.OutgoingResponse.SetStatusAsNotFound("Business not found"); return null; } var geo = new GeoPoint(double.Parse(dictionary["longitude"]), double.Parse(dictionary["latitude"])); using (var dataAccess = new ParkingDataAccess()) { parkings = dataAccess.GetParkingsByGeo(geo, 1000, 10).ToList(); var business = new Business() { BusinessType = BusinessType.Facebook, FacebookId = id, }; parkings.ForEach(business.RecommendedParkings.Add); dataAccess.AddBusiness(business); } } } return parkings; }