// 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);
        }
Пример #3
0
        // 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));
        }
Пример #4
0
        // 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);
        }
Пример #5
0
        // 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
     }
 }
Пример #7
0
        // 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);
            }
        }