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