Esempio n. 1
0
        async Task SubmitReview()
        {
            if (string.IsNullOrWhiteSpace(FullName) ||
                string.IsNullOrWhiteSpace(Email) ||
                string.IsNullOrWhiteSpace(Location) ||
                string.IsNullOrWhiteSpace(Description))
            {
                return;
            }

            ProductReviewViewModel newReview = new ProductReviewViewModel()
            {
                ProductID   = Product.ID,
                FullName    = this.FullName,
                Email       = this.Email,
                Location    = this.Location,
                Description = this.Description,
                Rating      = getRating()
            };

            setRatingStars(newReview);
            FullName    = "";
            Email       = "";
            Location    = "";
            Description = "";

            await productService.CreateProductReview(newReview);

            ProductReviews.Insert(ProductReviews.Count, newReview);
        }
Esempio n. 2
0
 public string UpdateReview(ProductReviewViewModel reviewObj)
 {
     if (ModelState.IsValid)
     {
         OperationsStatusViewModel OperationsStatusViewModelObj = null;
         try
         {
             reviewObj.commonObj             = new LogDetailsViewModel();
             reviewObj.commonObj.UpdatedBy   = _commonBusiness.GetUA().UserName;
             reviewObj.commonObj.UpdatedDate = _commonBusiness.GetCurrentDateTime();
             OperationsStatusViewModelObj    = Mapper.Map <OperationsStatus, OperationsStatusViewModel>(_reviewBusiness.UpdateReview(Mapper.Map <ProductReviewViewModel, ProductReview>(reviewObj)));
         }
         catch (Exception ex)
         {
             return(JsonConvert.SerializeObject(new { Result = "ERROR", Message = ex.Message }));
         }
         if (OperationsStatusViewModelObj.StatusCode == 1)
         {
             return(JsonConvert.SerializeObject(new { Result = "OK", Record = OperationsStatusViewModelObj }));
         }
         else
         {
             return(JsonConvert.SerializeObject(new { Result = "Error", Record = OperationsStatusViewModelObj }));
         }
     }
     return(JsonConvert.SerializeObject(new { Result = "ERROR", Message = "Please Check the values" }));
 }
Esempio n. 3
0
        public HttpResponseMessage PostProductReview(int productID, string reviewText)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    ProductReviewViewModel productReviewVM = new ProductReviewViewModel();
                    productReviewVM.ProductID    = productID;
                    productReviewVM.ReviewText   = reviewText;
                    productReviewVM.ReviewedDate = DateTime.Now;
                    productReviewVM.CustomerName = User.Identity.Name;

                    productReviewService.CreateReview(productReviewVM);

                    return(Request.CreateResponse(HttpStatusCode.Created, true));
                }
                catch (Exception ex)
                {
                    return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex));
                }
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }
        }
        public IActionResult ProductPage(int?id)
        {
            var prUNList = new List <ProductUNViewModel>();

            var productReviews = new List <ProductReview>();
            var userNames      = new List <string>();
            var prRev          = new ProductReviewViewModel();

            prRev.Product  = db.Products.Find(id);
            productReviews = db.ProductReviews.Where(pr => pr.ProductId == (int)id).ToList();

            foreach (var product in productReviews)
            {
                var    prUN     = new ProductUNViewModel();
                string userName = db.Users.Find(product.UserId).UserName;
                prUN.UserName      = userName;
                prUN.ProductReview = product;

                prUNList.Add(prUN);
            }

            prRev.ProductReviews = prUNList;

            return(View(prRev));
        }
Esempio n. 5
0
        //end ---------------------------------------



        //this will return the detail page
        //start ------------------------------
        public ActionResult DetailPage(int Id)
        {
            ProductReviewViewModel pvm = new ProductReviewViewModel();
            ProductTB              tb  = new ProductTB();
            List <ReviewTB>        rtb = new List <ReviewTB>();
            List <ReviewViewModel> rv  = new List <ReviewViewModel>();

            if (Id != 0)
            {
                tb  = _db.ProductTBs.Where(p => p.ProductId == Id).FirstOrDefault();
                rtb = _db.ReviewTBs.Where(p => p.ProductId == Id).ToList();
            }
            else
            {
                tb  = _db.ProductTBs.Where(p => p.ProductId == 4).FirstOrDefault();
                rtb = _db.ReviewTBs.Where(p => p.ProductId == 4).ToList();
            }

            pvm.ProductId       = tb.ProductId;
            pvm.ProductName     = tb.ProductName;
            pvm.ProductDetail   = tb.ProductDetail;
            pvm.ProductImageUrl = tb.ProductImageUrl;
            pvm.Price           = tb.Price;
            foreach (var item in rtb)
            {
                rv.Add(new ReviewViewModel()
                {
                    ReviewId = item.ReviewId, StarNumber = item.NumberOfStar, Message = item.Comment, UserName = item.UserTB.UserName, UserId = item.UserId, Date = item.Date
                });
            }
            pvm.RVM = rv;
            return(View(pvm));
        }
        public ActionResult Index(ProductReviewViewModel formReview)
        {
            var product  = SiteContext.Current.CatalogContext.CurrentProduct;
            var category = SiteContext.Current.CatalogContext.CurrentCategory;

            var request = System.Web.HttpContext.Current.Request;
            var basket  = SiteContext.Current.OrderContext.GetBasket();

            if (request.Form.AllKeys.All(x => x != "review-product"))
            {
                return(RedirectToAction("Index"));
            }

            var name           = formReview.Name;
            var email          = formReview.Email;
            var rating         = Convert.ToInt32(formReview.Rating) * 20;
            var reviewHeadline = formReview.Title;
            var reviewText     = formReview.Comments;

            if (basket.PurchaseOrder.Customer == null)
            {
                basket.PurchaseOrder.Customer = new Customer()
                {
                    FirstName = name, LastName = String.Empty, EmailAddress = email
                };
            }
            else
            {
                basket.PurchaseOrder.Customer.FirstName = name;
                if (basket.PurchaseOrder.Customer.LastName == null)
                {
                    basket.PurchaseOrder.Customer.LastName = String.Empty;
                }
                basket.PurchaseOrder.Customer.EmailAddress = email;
            }

            basket.PurchaseOrder.Customer.Save();

            var review = new ProductReview()
            {
                ProductCatalogGroup = SiteContext.Current.CatalogContext.CurrentCatalogGroup,
                ProductReviewStatus = ProductReviewStatus.SingleOrDefault(s => s.Name == "New"),
                CreatedOn           = DateTime.Now,
                CreatedBy           = "System",
                Product             = product,
                Customer            = basket.PurchaseOrder.Customer,
                Rating         = rating,
                ReviewHeadline = reviewHeadline,
                ReviewText     = reviewText,
                Ip             = request.UserHostName
            };

            product.AddProductReview(review);

            PipelineFactory.Create <ProductReview>("ProductReview").Execute(review);

            return(Redirect(CatalogLibrary.GetNiceUrlForProduct(product, category)));
        }
        public ActionResult GetReviewOptions()
        {
            ProductReviewViewModel productReviewDTO = new ProductReviewViewModel();

            return(Ok(new
            {
                sortOptions = productReviewDTO.GetSortOptions(),
                reviewsPerPage = productReviewDTO.GetReviewsPerPage()
            }));
        }
        public PartialViewResult ReloadReviews(int productId)
        {
            #region ReviewsOfProduct
            var product       = _context.Products.SingleOrDefault(p => p.Id == productId);
            var listOfReviews = _context.Reviews.Where(r => r.productId == productId).ToList();

            decimal calculateTotalRate = 0;
            foreach (var review in listOfReviews)
            {
                calculateTotalRate += review.Ratio;
            }

            product.TotalPercentageRate = calculateTotalRate;
            _context.SaveChanges();

            var catId   = product.ProductCategoryId;
            var catInDb = _context.ProductCategories.SingleOrDefault(x => x.Id == catId);
            var catName = catInDb.Category;

            var latestProductsInDb = _context.Products.Where(x => x.ProductCategoryId == catId).Take(4).ToList();

            List <Review> positiveReviews = new List <Review>();
            List <Review> negativeReviews = new List <Review>();

            foreach (var review in listOfReviews)
            {
                if (review.Rate >= 0)
                {
                    positiveReviews.Add(review);
                }
                else
                {
                    negativeReviews.Add(review);
                }
            }

            var viewModel = new ProductReviewViewModel()
            {
                ProductName                = product.Name,
                ProductType                = product.Type,
                ProductFeatures            = product.Features,
                ProdcutPrice               = product.Price,
                ProductId                  = product.Id,
                ProductReviewsPositiveList = positiveReviews,
                ProductReviewsNegativeList = negativeReviews,
                ProductReviewsList         = listOfReviews,
                Ratio              = product.TotalPercentageRate,
                Image              = product.ProductImageUrl,
                CategoryName       = catName,
                LatestProductsList = latestProductsInDb
            };
            #endregion
            return(PartialView("_Reviews", viewModel));
        }
Esempio n. 9
0
 public string GetReview(string ID)
 {
     try
     {
         OperationsStatusViewModel operationsStatus = new OperationsStatusViewModel();
         ProductReviewViewModel    review           = Mapper.Map <ProductReview, ProductReviewViewModel>(_reviewBusiness.GetReview(Int32.Parse(ID)));
         return(JsonConvert.SerializeObject(new { Result = "OK", Records = review }));
     }
     catch (Exception ex)
     {
         return(JsonConvert.SerializeObject(new { Result = "ERROR", Message = ex.Message }));
     }
 }
Esempio n. 10
0
        // ..................................................................................Get Reviews.....................................................................
        public async Task <IEnumerable <ProductReviewViewModel> > GetReviews(string productId, string sortBy, int page)
        {
            ProductReviewViewModel productReviewDTO = new ProductReviewViewModel(sortBy);

            return(await context.ProductReviews
                   .AsNoTracking()
                   .OrderBy(productReviewDTO)
                   .ThenByDescending(x => x.Date)
                   .Where(x => x.Product.UrlId == productId && !x.Deleted)
                   .Select <ProductReview, ProductReviewViewModel>()
                   .Skip((page - 1) * productReviewDTO.GetReviewsPerPage())
                   .Take(productReviewDTO.GetReviewsPerPage())
                   .ToListAsync());
        }
Esempio n. 11
0
        /// <summary>
        /// This method is used to create review.
        /// </summary>
        /// <param name="productReviewVM"></param>
        /// <returns></returns>
        public int CreateReview(ProductReviewViewModel productReviewVM)
        {
            productReview = new ProductReview
            {
                ProductID    = productReviewVM.ProductID,
                CustomerName = productReviewVM.CustomerName,
                ReviewText   = productReviewVM.ReviewText,
                ReviewedDate = productReviewVM.ReviewedDate
            };

            unitOfWork.ProductReviewRepository.Insert(productReview);
            unitOfWork.Save();

            return(productReview.ProductReviewID);
        }
Esempio n. 12
0
        public IActionResult Detail(int id)
        {
            var pdetail = product.GetById(id);
            var pReview = review.GetByProduct(pdetail);

            ProductReviewViewModel model = new ProductReviewViewModel(pdetail, pReview);

            //var listingResult = pdetail.Select(result => new ProductDetailViewModel { ProductId = result.Id, Name = result.Name, Category = result.Category, Description = result.Description, Price = result.Price, Reviews = result.Reviews });

            // var model = new ProductReviewViewModel()
            // {
            //   productDetails = listingResult
            // };
            return(View(model));
        }
        public async Task CreateProductReview(ProductReviewViewModel obj)
        {
            await _localDbConnection.CreateTableAsync <ProductReviewModel>();

            ProductReviewModel productReviewModel = new ProductReviewModel()
            {
                ProductID   = obj.ProductID,
                FullName    = obj.FullName,
                Email       = obj.Email,
                Location    = obj.Location,
                Description = obj.Description,
                Rating      = obj.Rating
            };
            await _localDbConnection.InsertAsync(productReviewModel);
        }
Esempio n. 14
0
        private void setRatingStars(ProductReviewViewModel review)
        {
            if (review.Rating >= 1)
            {
                review.IsRatingOne = true;
            }
            else
            {
                return;
            }

            if (review.Rating >= 2)
            {
                review.IsRatingTwo = true;
            }
            else
            {
                return;
            }

            if (review.Rating >= 3)
            {
                review.IsRatingThree = true;
            }
            else
            {
                return;
            }

            if (review.Rating >= 4)
            {
                review.IsRatingFour = true;
            }
            else
            {
                return;
            }

            if (review.Rating >= 5)
            {
                review.IsRatingFive = true;
            }
            else
            {
                return;
            }
        }
        private IList <ProductReviewViewModel> MapReviews(Product product)
        {
            var reviews = new List <ProductReviewViewModel>();

            foreach (var review in product.ProductReviews)
            {
                ProductReviewViewModel reviewModel = new ProductReviewViewModel();
                reviewModel.Name      = review.Customer.FirstName + " " + review.Customer.LastName;
                reviewModel.Email     = review.Customer.EmailAddress;
                reviewModel.Title     = review.ReviewHeadline;
                reviewModel.CreatedOn = review.CreatedOn;
                reviewModel.Comments  = review.ReviewText;
                reviewModel.Rating    = review.Rating;

                reviews.Add(reviewModel);
            }

            return(reviews);
        }
        private IList <ProductReviewViewModel> MapReviews(Product product)
        {
            var reviews = new List <ProductReviewViewModel>();

            foreach (var review in product.ProductReviews.Where(r => r.ProductReviewStatus.ProductReviewStatusId == (int)ProductReviewStatusCode.Approved))
            {
                var reviewModel = new ProductReviewViewModel
                {
                    Name      = review.Customer.FirstName + " " + review.Customer.LastName,
                    Email     = review.Customer.EmailAddress,
                    Title     = review.ReviewHeadline,
                    CreatedOn = review.CreatedOn,
                    Comments  = review.ReviewText,
                    Rating    = review.Rating
                };

                reviews.Add(reviewModel);
            }
            return(reviews);
        }
Esempio n. 17
0
        private void CopyReviews(ProductReviewsViewModel model, List <ProductReview> reviews)
        {
            model.Reviews.Clear();
            foreach (var productReview in reviews)
            {
                var viewModel = new ProductReviewViewModel(productReview);

                CustomerAccount customerAccount = null;
                if (productReview.UserID != "0")
                {
                    customerAccount = HccApp.MembershipServices.Customers.Find(productReview.UserID);
                }

                viewModel.UserID = productReview.UserID;
                if (customerAccount == null)
                {
                    viewModel.UserName = string.Empty;
                    viewModel.City     = string.Empty;
                    viewModel.State    = string.Empty;
                }
                else
                {
                    viewModel.UserName = string.Format("{0}{1}", customerAccount.FirstName,
                                                       string.IsNullOrEmpty(customerAccount.LastName)
                            ? string.Empty
                            : customerAccount.LastName.Substring(0, 1));
                    viewModel.City = customerAccount.ShippingAddress == null ||
                                     string.IsNullOrEmpty(customerAccount.ShippingAddress.City)
                        ? string.Empty
                        : customerAccount.ShippingAddress.City;
                    viewModel.State = customerAccount.ShippingAddress == null ||
                                      string.IsNullOrEmpty(customerAccount.ShippingAddress.RegionDisplayName)
                        ? string.Empty
                        : customerAccount.ShippingAddress.RegionDisplayName;
                }
                model.Reviews.Add(viewModel);
            }
        }
        // GET: Review/ReviewsOfProduct/2004
        public ActionResult ReviewsOfProduct(int id)
        {
            try
            {
                #region ReviewsOfProduct

                var product             = _context.Products.SingleOrDefault(p => p.Id == id);
                var blockedReviewOwners = _context.Users.Where(u => u.LockoutEnabled == false).ToList();
                var listOfReviews       = _context.Reviews.Where(r => r.productId == id).ToList();

                List <Review> listOfReviewsWithoutBlockedUsers = new List <Review>();

                foreach (var review in listOfReviews)
                {
                    if (blockedReviewOwners.Exists(x => x.UserName == review.ReviewOwner) == false)
                    {
                        listOfReviewsWithoutBlockedUsers.Add(review);
                    }
                }

                //foreach(var r in listOfReviewsWithoutBlockedUsers)
                //{
                //    _context.Reviews.Remove(r);
                //}
                //_context.SaveChanges();

                decimal calculateTotalRate = 0;
                foreach (var review in listOfReviewsWithoutBlockedUsers)
                {
                    calculateTotalRate += review.Ratio;
                }

                product.TotalPercentageRate = calculateTotalRate;
                _context.SaveChanges();

                var catId   = product.ProductCategoryId;
                var catInDb = _context.ProductCategories.SingleOrDefault(x => x.Id == catId);
                var catName = catInDb.Category;

                var latestProductsInDb = _context.Products.Where(x => x.ProductCategoryId == catId).Take(4).ToList();

                List <Review> positiveReviews = new List <Review>();
                List <Review> negativeReviews = new List <Review>();

                foreach (var review in listOfReviewsWithoutBlockedUsers)
                {
                    if (review.Rate >= 0)
                    {
                        positiveReviews.Add(review);
                    }
                    else
                    {
                        negativeReviews.Add(review);
                    }
                }

                var viewModel = new ProductReviewViewModel()
                {
                    ProductName                = product.Name,
                    ProductType                = product.Type,
                    ProductFeatures            = product.Features,
                    ProdcutPrice               = product.Price,
                    ProductId                  = product.Id,
                    ProductReviewsPositiveList = positiveReviews,
                    ProductReviewsNegativeList = negativeReviews,
                    ProductReviewsList         = listOfReviewsWithoutBlockedUsers,
                    TotalPercentageRate        = calculateTotalRate,
                    Image              = product.ProductImageUrl,
                    CategoryName       = catName,
                    LatestProductsList = latestProductsInDb
                };
                #endregion
                return(View(viewModel));
            }
            catch
            {
                return(View());
            }
        }
Esempio n. 19
0
 public AddProductReviewCommand(ProductReviewViewModel productViewModel)
 {
     ProductReviewViewModel = productViewModel;
 }
Esempio n. 20
0
 public RemoveProductReviewCommand(ProductReviewViewModel productViewModel)
 {
     ProductReviewViewModel = productViewModel;
 }
Esempio n. 21
0
 public UpdateProductReviewCommand(ProductReviewViewModel productViewModel)
 {
     ProductReviewViewModel = productViewModel;
 }