Esempio n. 1
0
        public async Task <EntityFramework.Review> AddNewReview(Messaging.Model.Review reviewToAdd)
        {
            bool userAlreadyReaviewed =
                _repository.AllEntities().Any(x => x.UserId == reviewToAdd.UserId &&
                                              x.ProductId == reviewToAdd.ProductId &&
                                              !x.DateDeleted.HasValue);

            if (userAlreadyReaviewed)
            {
                throw new EntityCommandExecutionException($"User {reviewToAdd.UserId} already reviewed product {reviewToAdd.ProductId}.");
            }


            var addedReview = new EntityFramework.Review
            {
                ProductId         = reviewToAdd.ProductId,
                Rating            = reviewToAdd.Rating,
                UserId            = reviewToAdd.UserId,
                Text              = reviewToAdd.Text,
                UserNickname      = reviewToAdd.UserNickname,
                UserBoughtProduct = reviewToAdd.UserBoughtProduct
            };

            _repository.Add(addedReview);
            await _unitOfWork.SaveChangesAsync();

            return(addedReview);
        }
Esempio n. 2
0
        public async Task <EntityFramework.Review> UpdateReview(Messaging.Model.Review reviewToEdit)
        {
            if (!_repository.AllEntities().Any(x => x.Id == reviewToEdit.ReviewId && !x.DateDeleted.HasValue))
            {
                throw new EntityCommandExecutionException($"No review with id {reviewToEdit.ReviewId}");
            }

            var editedReview = _repository.AllEntities().First(x => x.Id == reviewToEdit.ReviewId);

            _repository.Update(editedReview);

            editedReview.Rating       = reviewToEdit.Rating;
            editedReview.Text         = reviewToEdit.Text;
            editedReview.UserNickname = reviewToEdit.UserNickname;

            await _unitOfWork.SaveChangesAsync();

            return(editedReview);
        }