// Return a list of all of the restaurants in the database public List <PLC.Restaurant> GetAllRestaurants() { List <Restaurant> restaurants; List <PLC.Restaurant> rests = new List <PLC.Restaurant>(); using (db = new RestaurantDBEntities()) { restaurants = db.Restaurants.ToList(); foreach (var r in restaurants) { rests.Add(DataToLibrary(r)); } } return(rests); }
// Return a list of all the reviews for the specified restaurant public List <PLC.Review> GetAllOfRestaurantsReviews(int restaurantID) { List <PLC.Review> reviews = new List <PLC.Review>(); using (db = new RestaurantDBEntities()) { var rvs = db.Reviews.ToList(); foreach (var record in db.Reviews1.ToList()) { if (record.RestaurantID == restaurantID) { reviews.Add(ReviewDataToLibraryReview(rvs.ElementAt((int)record.ReviewID - 1))); } } } return(reviews); }
// Return the specified restaurant public PLC.Restaurant GetRestaurantByID(int restID) { Restaurant rest = new Restaurant(); try { using (db = new RestaurantDBEntities()) { rest = db.Restaurants.Where(x => x.RestaurantID == restID).FirstOrDefault(); return(DataToLibrary(rest)); } } catch (Exception ex) { logger.Error(ex.Message); } return(DataToLibrary(rest)); }
// Return a list of all the reviews for the specified restaurant public List <PLC.Review> GetAllOfRestaurantsReviews(int restaurantID) { List <PLC.Review> reviews = new List <PLC.Review>(); using (db = new RestaurantDBEntities()) { var rvs = db.Reviews.ToList(); var records = db.Reviews1.ToList(); foreach (var record in records) { if (record.RestaurantID == restaurantID) { reviews.Add(ReviewDataToLibraryReview(rvs.Where(x => x.ReviewID == record.ReviewID).FirstOrDefault())); } } } return(reviews); }
// Delete a selected Restaurant and all of it's corresponding reviews public void DeleteRestaurant(Restaurant restaurant) { try { using (db = new RestaurantDBEntities()) { if (restaurant != null) { // Remove the restaurant from the database db.Restaurants.Remove(db.Restaurants.Find(restaurant.RestaurantID)); // Remove all of the it's reviews from the database var reviewsToDelete = db.Reviews1.Where(x => x.RestaurantID == restaurant.RestaurantID).ToList(); if (reviewsToDelete != null) { foreach (var review in reviewsToDelete) { var r = db.Reviews.Where(x => x.ReviewID == review.ReviewID).FirstOrDefault(); db.Reviews.Remove(r); // Remove from the Review table db.Reviews1.Remove(review); // Remove from the Reviews table } } } else { throw new NotImplementedException(); } // Save the changes to the database db.SaveChanges(); } } catch (NotImplementedException ne) { logger.Error(ne.Message); } catch (Exception ex) { logger.Error(ex.Message); } }
// Update all Restaurant's records Rating to contain its average rating from the reviews public void UpdateAverageRating() { using (db = new RestaurantDBEntities()) { foreach (var rest in db.Restaurants) { double averageRating = 0.0; double reviewCount = 0; foreach (var rev in db.Reviews1) { if (rev.RestaurantID == rest.RestaurantID) { var reviewstable = db.Reviews.ToList(); averageRating += reviewstable.ElementAt((int)rev.ReviewID - 1).Rating; reviewCount++; } } averageRating = averageRating / reviewCount; // average rating rest.Rating = averageRating; } db.SaveChanges(); // save the changes made } }
// Update an existing restaurant in the database public void UpdateRestaurant(Restaurant restaurant) { try { // Search for the restaurant using it's ID using (db = new RestaurantDBEntities()) { var rest = db.Restaurants.Where(x => x.RestaurantID == restaurant.RestaurantID).FirstOrDefault(); // Update the restaurant if (rest != null) { rest.Name = restaurant.Name; rest.Address = restaurant.Address; rest.City = restaurant.City; rest.State = restaurant.State; rest.ZipCode = restaurant.ZipCode; } else { throw new NotImplementedException(); } // Save the changes db.SaveChanges(); } } catch (NotImplementedException ne) { logger.Error(ne.Message); } catch (Exception ex) { logger.Error(ex.Message); } }