public IHttpActionResult AddReview(MReview review) { if (!ModelState.IsValid) { return(new InvalidModelStateResult(ModelState, this)); } try { var isVerified = false; try { var orders = _orderClient.GetAllCustomerOrders(UserHelper.CustomerSession.CustomerId, UserHelper.StoreClient.GetCurrentStore().StoreId); if (orders != null) { isVerified = orders.ExpandAll().Where(o => o.Status.Contains("Completed")) .SelectMany(o => o.OrderForms) .SelectMany(of => of.LineItems) .Any(li => li.CatalogItemId == review.ItemId || !string.IsNullOrEmpty(li.ParentCatalogItemId) && li.ParentCatalogItemId == review.ItemId); } } catch { //not verified } var dbReviewreview = new Review { AuthorId = UserHelper.CustomerSession.CustomerId, AuthorLocation = review.Reviewer.Address, AuthorName = review.Reviewer.NickName, ItemId = review.ItemId, ItemUrl = review.ItemId, OverallRating = review.Rating, Title = review.RatingComment, IsVerifiedBuyer = isVerified, Status = (int)ReviewStatus.Pending }; dbReviewreview.ReviewFieldValues.Add(new ReviewFieldValue { Name = "Review", Value = review.ReviewText.Text, ReviewFieldValueId = Guid.NewGuid().ToString() }); _repository.Add(dbReviewreview); _repository.UnitOfWork.Commit(); return(Ok("ok")); } catch (Exception ex) { return(BadRequest("Error while saving data to database.".Localize() + " " + ex.Message)); } }