Example #1
0
        // PUT api/dishreview/
        public HttpResponseMessage Put([FromBody] DishReview value, string filter = null)
        {
            ServerValidationInfo vi = null;

            value.UpdateDate = DateTime.Now;
            if (!ModelState.IsValid)
            {
                vi = new ServerValidationInfo(ModelState);
            }
            if (filter == null)
            {
                context.Entry(value).State = System.Data.EntityState.Modified;
            }
            else
            {
                var old = context.DishReviews.SingleOrDefault(queryBuider.CreateWhere(filter));
                old.Id          = value.Id;
                old.Rating      = value.Rating;
                old.ClientId    = value.ClientId;
                old.DishId      = value.DishId;
                old.Description = value.Description;
                old.UpdateDate  = value.UpdateDate;
            }
            if (vi != null && vi.ContainsError)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, vi));
            }
            var result = context.SaveChanges() > 0;

            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }
Example #2
0
        public void Create(DishReviewEditModel model)
        {
            int dishId  = model.DishId ?? 0;
            int placeId = placeService.GetPlaceId(model.Place);

            placeTypeService.CreatePlaceTypesForPlace(placeId, model.Place.GTypes);

            if (!model.DishId.HasValue)
            {
                var newDish = new Dish
                {
                    CreatedByUserId = UserHelper.GetCurrentUserId(),
                    CreatedDateTime = DateTime.Now,
                    Name            = model.DishName,
                    IsConfirmed     = false,
                    IsValid         = true
                };

                dishRepository.Insert(newDish);

                dishId = newDish.Id;
            }

            int?imageId = null;

            if (!string.IsNullOrEmpty(model.ImageUri))
            {
                imageId = imageService.CreateImage(model.ImageUri);
            }

            var review = new Review
            {
                CreatedByUserId = UserHelper.GetCurrentUserId(),
                CreatedDateTime = DateTime.Now,
                Text            = model.Review,
                PlaceId         = placeId,
                IsValid         = true,
                Rating          = model.Rating,
                ImageId         = imageId
            };

            reviewRepository.Insert(review);

            var dishReview = new DishReview
            {
                DishId   = dishId,
                ReviewId = review.Id
            };

            dishService.CreateDishTags(model.TagIdList, dishId);

            dishReviewRepository.Insert(dishReview);
        }
Example #3
0
        public void AddReview(DishReview dishReview)
        {
            Dish dish = _unitOfWork.DishRepository.Get(
                d => (d.DishId == dishReview.DishId) && (d.Restaurant.Country == _userProfile.Country) && (d.Restaurant.City == _userProfile.City)
                ).FirstOrDefault();

            if (dish == null)
            {
                throw new EntityNotFoundException("Dish with id " + dishReview.DishId + " not found.");
            }

            dishReview.CreatedAt     = DateTime.Now;
            dishReview.UserProfileId = _userProfile.UserProfileId;

            _unitOfWork.DishReviewRepository.Add(dishReview);

            _unitOfWork.Complete();
        }
Example #4
0
        // POST api/dishreview/
        public HttpResponseMessage Post([FromBody] DishReview value)
        {
            ServerValidationInfo vi = null;

            value.UpdateDate = DateTime.Now;
            if (!ModelState.IsValid)
            {
                vi = new ServerValidationInfo(ModelState);
            }
            if (vi != null && vi.ContainsError)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, vi));
            }
            context.Entry(value).State = System.Data.EntityState.Added;
            context.SaveChanges();

            return(Request.CreateResponse(HttpStatusCode.OK, value));
        }
Example #5
0
        public void Run(RestaurantContext db)
        {
            Console.WriteLine(this.description);
            Console.WriteLine("-------------------------------------\n");

            Review review = new Review();

            Console.WriteLine("Listing all restaurants:");
            foreach (var restaurant in db.Restaurants.ToList())
            {
                Console.WriteLine($"{restaurant.Name} located at {restaurant.Address}");
            }

            Console.WriteLine("Enter address of restaurant to review");
            string     input            = Console.ReadLine();
            Restaurant restaurantToFind = db.Restaurants.Find(input);

            if (restaurantToFind == null)
            {
                Console.WriteLine("Restaurant does not exist, returning to menu...");
                return;
            }

            review.RestaurantAddress = restaurantToFind.Address;

            Console.WriteLine($"Printing all guests for {restaurantToFind.Name}:");
            foreach (var guest in db.Guests.Where(g => g.Table.RestaurantAddress == restaurantToFind.Address).ToList())
            {
                Console.WriteLine($"{guest.Name} sat at table " +
                                  $"{guest.Table.Number} at " +
                                  $"{guest.Time.ToShortDateString()}: " +
                                  $"{guest.Time.ToShortTimeString()}" +
                                  $" - guestId: {guest.GuestId}");
            }

            Console.WriteLine("Select guests that leave review - Seperate with enter, \"x\" to finish:");

            input = "0";
            while (input != "x")
            {
                input = Console.ReadLine();
                if (int.TryParse(input, out int guestId))
                {
                    Guest guest = db.Guests.Find(guestId);
                    if (guest != null)
                    {
                        Console.WriteLine($"Added {guest.Name} to the review.");
                        review.Guests.Add(guest);
                    }
                    else
                    {
                        Console.WriteLine("Could not find the specified guest");
                    }
                }
            }

            db.Add(review);
            db.SaveChanges();

            foreach (var guest in review.Guests)
            {
                foreach (var dish in guest.Dishes)
                {
                    DishReview dishReview = db.DishReviews.Find(dish.DishId, review.ReviewId);
                    if (dishReview == null)
                    {
                        db.Add(new DishReview {
                            DishId = dish.DishId, ReviewId = review.ReviewId
                        });
                        db.SaveChanges();
                    }
                }
            }

            Console.WriteLine("Enter text to add to review:");
            review.Text = Console.ReadLine();

            Console.WriteLine("Enter amount of stars as whole number - Must be between 1 and 5");
            input = Console.ReadLine();
            int stars = -1;

            while (!int.TryParse(input, out stars) || !(0 < stars && stars <= 5))
            {
                Console.WriteLine("You failed to enter a whole number between 1 and 5, try again!");
                input = Console.ReadLine();
            }

            review.Stars = stars;
            db.Reviews.Update(review);
            db.SaveChanges();
        }