Exemple #1
0
        /// <summary>
        /// Validate model object before save
        /// </summary>
        /// <param name="creatorUserDb"></param>
        /// <returns></returns>
        private bool Valid(DM.RestaurantReviewEntities db)
        {
            if (string.IsNullOrEmpty(Reviewer.Username))
            {
                throw new Exception("Reviewer is required.");
            }

            ReviewerUserDb = db.Users.FirstOrDefault(u => u.UserName == Reviewer.Username);
            if (ReviewerUserDb == null)
            {
                throw new Exception("Reviewer was not found.");
            }

            if (Restaurant == null)
            {
                throw new Exception("Restaurant is required.");
            }

            if (!db.Restaurants.Any(r => r.Id == Restaurant.Id))
            {
                throw new Exception("Restaurant was not found.");
            }

            if (string.IsNullOrEmpty(ReviewText))
            {
                throw new Exception("Review is required.");
            }

            return(true);
        }
        /// <summary>
        /// Validate model object before save
        /// </summary>
        /// <param name="creatorUserDb"></param>
        /// <returns></returns>
        private bool Valid(DM.RestaurantReviewEntities db)
        {
            if (string.IsNullOrEmpty(Creator.Username))
            {
                throw new Exception("Creator is required.");
            }

            CreatorUserDb = db.Users.FirstOrDefault(u => u.UserName == Creator.Username);
            if (CreatorUserDb == null)
            {
                throw new Exception("Creator was not found.");
            }

            if (string.IsNullOrEmpty(Name))
            {
                throw new Exception("Restaurant Name is required.");
            }

            if (string.IsNullOrEmpty(City))
            {
                throw new Exception("Restaurant City is required.");
            }

            if (State == null)
            {
                throw new Exception("Restaurant State is required.");
            }

            if (!db.States.Any(s => s.Id == State.Id))
            {
                throw new Exception("Restaurant State was not found.");
            }

            return(true);
        }
Exemple #3
0
 internal static IQueryable <User> GetQueryable(DM.RestaurantReviewEntities db)
 {
     return(from u in db.Users
            select new User
     {
         Id = u.Id,
         Username = u.UserName,
         EmailAddress = u.EmailAddress
     });
 }
 internal static IQueryable <State> GetQueryable(DM.RestaurantReviewEntities db)
 {
     return(from s in db.States
            select new State
     {
         Id = s.Id,
         Name = s.Name,
         Abbreviation = s.Abbreviation
     });
 }
 public HttpResponseMessage GetStates()
 {
     try
     {
         using (var db = new DM.RestaurantReviewEntities())
         {
             var states = State.GetQueryable(db).ToList();
             return(Request.CreateResponse(HttpStatusCode.OK, states));
         }
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
     }
 }
Exemple #6
0
 public HttpResponseMessage GetRestaurantsByCity(string city, int stateId)
 {
     try
     {
         using (var db = new DM.RestaurantReviewEntities())
         {
             var restaurants = Restaurant.GetQueryable(db).Where(r => r.City == city && r.State.Id == stateId).ToList();
             return(Request.CreateResponse(HttpStatusCode.OK, restaurants));
         }
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
     }
 }
 public HttpResponseMessage GetReviewsByUser(string username)
 {
     try
     {
         using (var db = new DM.RestaurantReviewEntities())
         {
             var reviews = Review.GetQueryable(db).Where(rv => rv.Reviewer.Username == username).ToList();
             return(Request.CreateResponse(HttpStatusCode.OK, reviews));
         }
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
     }
 }
Exemple #8
0
        /// <summary>
        /// Save Model object to Db
        /// </summary>
        /// <param name="db"></param>
        /// <returns></returns>
        public DM.Review Save(DM.RestaurantReviewEntities db)
        {
            if (!Valid(db))
            {
                return(null);
            }
            var reviewDb = new DM.Review
            {
                RestaurantId   = Restaurant.Id,
                ReviewText     = ReviewText,
                ReviewerUserId = ReviewerUserDb.Id
            };

            db.Reviews.Add(reviewDb);
            return(reviewDb);
        }
Exemple #9
0
        internal static IQueryable <Review> GetQueryable(DM.RestaurantReviewEntities db)
        {
            var restaurants = Restaurant.GetQueryable(db);
            var users       = User.GetQueryable(db);

            return(from rv in db.Reviews
                   join r in restaurants on rv.RestaurantId equals r.Id
                   join u in users on rv.ReviewerUserId equals u.Id
                   select new Review
            {
                Id = r.Id,
                ReviewText = rv.ReviewText,
                Restaurant = r,
                Reviewer = u
            });
        }
Exemple #10
0
 public HttpResponseMessage SaveRestaurant(Restaurant restaurant)
 {
     try
     {
         using (var db = new DM.RestaurantReviewEntities())
         {
             var restaurantDb = restaurant.Save(db);
             db.SaveChanges();
             return(Request.CreateResponse(HttpStatusCode.OK, restaurantDb?.Id ?? 0));
         }
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
     }
 }
        /// <summary>
        /// Save Model object to Db
        /// </summary>
        /// <param name="db"></param>
        /// <returns></returns>
        public DM.Restaurant Save(DM.RestaurantReviewEntities db)
        {
            if (!Valid(db))
            {
                return(null);
            }
            var restaurantDb = new DM.Restaurant
            {
                Name          = Name,
                City          = City,
                StateId       = State.Id,
                CreatorUserId = CreatorUserDb.Id
            };

            db.Restaurants.Add(restaurantDb);
            return(restaurantDb);
        }
        internal static IQueryable <Restaurant> GetQueryable(DM.RestaurantReviewEntities db)
        {
            var users  = User.GetQueryable(db);
            var states = State.GetQueryable(db);

            return(from r in db.Restaurants
                   join s in states on r.StateId equals s.Id
                   join u in users on r.CreatorUserId equals u.Id
                   select new Restaurant
            {
                Id = r.Id,
                Name = r.Name,
                City = r.City,
                State = s,
                Creator = u
            });
        }
 public HttpResponseMessage DeleteReview(int id)
 {
     try
     {
         using (var db = new DM.RestaurantReviewEntities())
         {
             var review = db.Reviews.SingleOrDefault(rv => rv.Id == id);
             if (review == null)
             {
                 return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "Review Not Found"));
             }
             db.Reviews.Remove(review);
             db.SaveChanges();
             return(Request.CreateResponse(HttpStatusCode.OK, true));
         }
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
     }
 }