public virtual CustomerReviewRating ToModel(CustomerReviewRating rating) { if (rating == null) { throw new ArgumentNullException(nameof(rating)); } rating.Id = Id; rating.CreatedBy = CreatedBy; rating.CreatedDate = CreatedDate; rating.ModifiedBy = ModifiedBy; rating.ModifiedDate = ModifiedDate; rating.AuthorNickname = AuthorNickname; rating.Rating = Rating; rating.ReviewId = ReviewId; return(rating); }
public virtual CustomerReviewRatingEntity FromModel(CustomerReviewRating rating, PrimaryKeyResolvingMap pkMap) { if (rating == null) { throw new ArgumentNullException(nameof(rating)); } Id = rating.Id; CreatedBy = rating.CreatedBy; CreatedDate = rating.CreatedDate; ModifiedBy = rating.ModifiedBy; ModifiedDate = rating.ModifiedDate; ReviewId = rating.ReviewId; AuthorNickname = rating.AuthorNickname; Rating = rating.Rating; return(this); }
// TODO: Remove first argument public void SaveCustomerReviewRates(CustomerReviewRating rating) { if (rating == null) { throw new ArgumentNullException(nameof(rating)); } using (var repository = _repositoryFactory()) { var review = repository.GetByIds(new string[] { rating.ReviewId }).FirstOrDefault(); if (review == null) { throw new ArgumentException(nameof(rating.ReviewId)); } var pkMap = new PrimaryKeyResolvingMap(); var sourceEntity = AbstractTypeFactory <CustomerReviewRatingEntity> .TryCreateInstance() .FromModel(rating, pkMap); var existingEntity = review.Ratings.FirstOrDefault(r => r.Id == rating.Id); if (existingEntity != null) { sourceEntity.Patch(existingEntity); } else { review.Ratings.Add(sourceEntity); } CommitChanges(repository); pkMap.ResolvePrimaryKeys(); } }
public void CanDoCRUDandSearch() { // Read non-existing item var getByIdsResult = CustomerReviewService.GetByIds(new[] { CustomerReviewId }); Assert.NotNull(getByIdsResult); Assert.Empty(getByIdsResult); // Create var item = new CustomerReview { Id = CustomerReviewId, ProductId = ProductId, CreatedDate = DateTime.Now, CreatedBy = "initial data seed", AuthorNickname = "John Doe", Content = "Liked that", Rating = 4 }; CustomerReviewService.SaveCustomerReviews(new[] { item }); getByIdsResult = CustomerReviewService.GetByIds(new[] { CustomerReviewId }); Assert.Single(getByIdsResult); item = getByIdsResult[0]; Assert.Equal(CustomerReviewId, item.Id); // Update var updatedContent = "Updated content"; Assert.NotEqual(updatedContent, item.Content); item.Content = updatedContent; CustomerReviewService.SaveCustomerReviews(new[] { item }); getByIdsResult = CustomerReviewService.GetByIds(new[] { CustomerReviewId }); Assert.Single(getByIdsResult); item = getByIdsResult[0]; Assert.Equal(updatedContent, item.Content); // Rate var rating = new CustomerReviewRating { Rating = 4, AuthorNickname = "john", CreatedBy = "initial data seed", CreatedDate = DateTime.Now, Id = ReviewRatingId, ReviewId = CustomerReviewId }; Assert.Throws <ArgumentNullException>(() => CustomerReviewService.SaveCustomerReviewRates(null)); CustomerReviewService.SaveCustomerReviewRates(rating); var gotRating = CustomerReviewService.GetRatings(CustomerReviewId); Assert.Equal(1, gotRating.TotalCount); Assert.Single(gotRating.Results); // Search Assert.Throws <ArgumentNullException>(() => CustomerReviewSearchService.SearchCustomerReviews(null)); var criteria = new CustomerReviewSearchCriteria { ProductIds = new[] { ProductId } }; var searchResult = CustomerReviewSearchService.SearchCustomerReviews(criteria); Assert.NotNull(searchResult); Assert.Equal(1, searchResult.TotalCount); Assert.Single(searchResult.Results); // Delete CanDeleteCustomerReviews(); }
public IHttpActionResult Rate(CustomerReviewRating rating) { _customerReviewService.SaveCustomerReviewRates(rating); return(StatusCode(HttpStatusCode.NoContent)); }