/// <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); }
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)); } }
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)); } }
/// <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); }
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 }); }
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)); } }