public IActionResult Reviews(DataSourceRequest command, string vendorId, [FromServices] IWorkContext workContext) { var vendor = _vendorService.GetVendorById(vendorId); if (vendor == null) { throw new ArgumentException("No vendor found with the specified id"); } //a vendor should have access only to his own profile if (workContext.CurrentVendor != null && vendor.Id != workContext.CurrentVendor.Id) { return(Content("This is not your vendor")); } var vendorReviews = _vendorService.GetAllVendorReviews("", null, null, null, "", vendorId, command.Page - 1, command.PageSize); var gridModel = new DataSourceResult { Data = vendorReviews.Select(x => { var m = new VendorReviewModel(); _vendorViewModelService.PrepareVendorReviewModel(m, x, false, true); return(m); }), Total = vendorReviews.TotalCount, }; return(Json(gridModel)); }
public async Task <IActionResult> Reviews(DataSourceRequest command, string vendorId, [FromServices] IWorkContext workContext) { var vendor = await _vendorService.GetVendorById(vendorId); if (vendor == null) { throw new ArgumentException("No vendor found with the specified id"); } //a vendor should have access only to his own profile if (workContext.CurrentVendor != null && vendor.Id != workContext.CurrentVendor.Id) { return(Content("This is not your vendor")); } var vendorReviews = await _vendorService.GetAllVendorReviews("", null, null, null, "", vendorId, command.Page - 1, command.PageSize); var items = new List <VendorReviewModel>(); foreach (var item in vendorReviews) { var m = new VendorReviewModel(); await _vendorViewModelService.PrepareVendorReviewModel(m, item, false, true); items.Add(m); } var gridModel = new DataSourceResult { Data = items, Total = vendorReviews.TotalCount, }; return(Json(gridModel)); }
public ActionResult VendorReview(int vendorId) { var vendor = _vendorService.GetVendorById(vendorId); if (vendor == null || vendor.Deleted) { return(RedirectToRoute("HomePage")); } var model = new VendorReviewModel(); model.VendorID = vendor.Id; model.VendorName = _localizationService.GetLocalized(vendor, x => x.Name); model.VendorSeName = _urlRecordService.GetSeName(vendor); //only registered users can leave review if (_workContext.CurrentCustomer.IsGuest() && !_catalogSettings.AllowAnonymousUsersToReviewProduct) { ModelState.AddModelError("", _localizationService.GetResource("Reviews.OnlyRegisteredUsersCanWriteReviews")); } //default value model.Rating = _catalogSettings.DefaultProductRatingValue; return(View("~/Plugins/Nop.Plugin.Misc.VendorEnhanced/Views/VendorReview.cshtml", model)); }
public virtual async Task PrepareVendorReviewModel(VendorReviewModel model, VendorReview vendorReview, bool excludeProperties, bool formatReviewText) { if (model == null) throw new ArgumentNullException("model"); if (vendorReview == null) throw new ArgumentNullException("vendorReview"); var vendor = await _vendorService.GetVendorById(vendorReview.VendorId); var customer = await _customerService.GetCustomerById(vendorReview.CustomerId); model.Id = vendorReview.Id; model.VendorId = vendorReview.VendorId; model.VendorName = vendor.Name; model.CustomerId = vendorReview.CustomerId; model.CustomerInfo = customer != null ? customer.IsRegistered() ? customer.Email : _localizationService.GetResource("Admin.Customers.Guest") : ""; model.Rating = vendorReview.Rating; model.CreatedOn = _dateTimeHelper.ConvertToUserTime(vendorReview.CreatedOnUtc, DateTimeKind.Utc); if (!excludeProperties) { model.Title = vendorReview.Title; if (formatReviewText) model.ReviewText = FormatText.ConvertText(vendorReview.ReviewText); else model.ReviewText = vendorReview.ReviewText; model.IsApproved = vendorReview.IsApproved; } }
//edit public async Task <IActionResult> Edit(string id) { var vendorReview = await _vendorService.GetVendorReviewById(id); if (vendorReview == null) { //No vendor review found with the specified id return(RedirectToAction("List")); } var model = new VendorReviewModel(); await _vendorViewModelService.PrepareVendorReviewModel(model, vendorReview, false, false); return(View(model)); }
public IActionResult List(DataSourceRequest command, VendorReviewListModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageVendorReviews)) { return(AccessDeniedView()); } DateTime?createdOnFromValue = (model.CreatedOnFrom == null) ? null : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.CreatedOnFrom.Value, _dateTimeHelper.CurrentTimeZone); DateTime?createdToFromValue = (model.CreatedOnTo == null) ? null : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.CreatedOnTo.Value, _dateTimeHelper.CurrentTimeZone).AddDays(1); IPagedList <VendorReview> vendorReviews; //vendor if (_workContext.CurrentVendor != null) { vendorReviews = _vendorService.GetAllVendorReviews("", null, createdOnFromValue, createdToFromValue, model.SearchText, _workContext.CurrentVendor.Id, command.Page - 1, command.PageSize); } //admin else if (_workContext.CurrentCustomer.IsAdmin()) { vendorReviews = _vendorService.GetAllVendorReviews("", null, createdOnFromValue, createdToFromValue, model.SearchText, model.SearchVendorId, command.Page - 1, command.PageSize); } else { return(AccessDeniedView()); } var gridModel = new DataSourceResult { Data = vendorReviews.Select(x => { var m = new VendorReviewModel(); PrepareVendorReviewModel(m, x, false, true); return(m); }), Total = vendorReviews.TotalCount, }; return(Json(gridModel)); }
public virtual (IEnumerable <VendorReviewModel> vendorReviewModels, int totalCount) PrepareVendorReviewModel(VendorReviewListModel model, int pageIndex, int pageSize) { DateTime?createdOnFromValue = (model.CreatedOnFrom == null) ? null : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.CreatedOnFrom.Value, _dateTimeHelper.CurrentTimeZone); DateTime?createdToFromValue = (model.CreatedOnTo == null) ? null : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.CreatedOnTo.Value, _dateTimeHelper.CurrentTimeZone).AddDays(1); IPagedList <VendorReview> vendorReviews = _vendorService.GetAllVendorReviews("", null, createdOnFromValue, createdToFromValue, model.SearchText, model.SearchVendorId, pageIndex - 1, pageSize); return(vendorReviews.Select(x => { var m = new VendorReviewModel(); PrepareVendorReviewModel(m, x, false, true); return m; }).ToList(), vendorReviews.TotalCount); }
public virtual async Task<(IEnumerable<VendorReviewModel> vendorReviewModels, int totalCount)> PrepareVendorReviewModel(VendorReviewListModel model, int pageIndex, int pageSize) { DateTime? createdOnFromValue = (model.CreatedOnFrom == null) ? null : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.CreatedOnFrom.Value, _dateTimeHelper.CurrentTimeZone); DateTime? createdToFromValue = (model.CreatedOnTo == null) ? null : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.CreatedOnTo.Value, _dateTimeHelper.CurrentTimeZone).AddDays(1); IPagedList<VendorReview> vendorReviews = await _vendorService.GetAllVendorReviews("", null, createdOnFromValue, createdToFromValue, model.SearchText, model.SearchVendorId, pageIndex - 1, pageSize); var items = new List<VendorReviewModel>(); foreach (var x in vendorReviews) { var m = new VendorReviewModel(); await PrepareVendorReviewModel(m, x, false, true); items.Add(m); } return (items, vendorReviews.TotalCount); }
public IActionResult Edit(VendorReviewModel model, bool continueEditing) { var vendorReview = _vendorService.GetVendorReviewById(model.Id); if (vendorReview == null) { //No vendor review found with the specified id return(RedirectToAction("List")); } if (ModelState.IsValid) { vendorReview = _vendorViewModelService.UpdateVendorReviewModel(vendorReview, model); SuccessNotification(_localizationService.GetResource("Admin.VendorReviews.Updated")); return(continueEditing ? RedirectToAction("Edit", new { id = vendorReview.Id, VendorId = vendorReview.VendorId }) : RedirectToAction("List")); } //If we got this far, something failed, redisplay form _vendorViewModelService.PrepareVendorReviewModel(model, vendorReview, true, false); return(View(model)); }
//edit public IActionResult Edit(string id) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageVendorReviews)) { return(AccessDeniedView()); } var vendorReview = _vendorService.GetVendorReviewById(id); var vendor = _vendorService.GetVendorById(vendorReview.VendorId); if (vendorReview == null) { //No vendor review found with the specified id return(RedirectToAction("List")); } var model = new VendorReviewModel(); PrepareVendorReviewModel(model, vendorReview, false, false); return(View(model)); }
public ActionResult SaveReview(VendorReviewModel model) { //only requested review var custId = _workContext.CurrentCustomer.Id; if (!_extendedVendorService.IsVendorReviewDone(model.VendorId, custId, model.OrderId, model.ProductId)) { //check if customer can review this vendor for this order if (_extendedVendorService.CanCustomerReviewVendor(model.VendorId, custId, model.OrderId)) { //yes he can var review = new VendorReview { CreatedOnUTC = DateTime.Now, CustomerId = custId, HelpfulnessNoTotal = 0, HelpfulnessYesTotal = 0, IsApproved = false, OrderId = model.OrderId, ProductId = model.ProductId, Rating = model.Rating, ReviewText = model.ReviewText, Title = model.Title, VendorId = model.VendorId }; _extendedVendorService.SaveVendorReview(review); } } else { return(Json(new { success = false, error = "You have already reviewed this order" })); } return(Json(new { success = false, error = "You need to login to review a vendor" })); }
public virtual IActionResult VendorReviewAdd(VendorReviewModel model) { var vendor = _vendorService.GetVendorById(model.VendorID); if (vendor != null) { model.VendorName = vendor.Name; model.VendorSeName = _urlRecordService.GetSeName(vendor); } var customerID = _workContext.CurrentCustomer.Id; if (ModelState.IsValid) { var vendorReview = new VendorReviewRecord { CustomerID = customerID, VendorID = model.VendorID, StoreID = model.StoreID, IsApproved = model.IsApproved, Title = model.Title, ReviewText = model.ReviewText, ReplyText = model.ReplyText, CustomerNotifiedOfReply = model.CustomerNotifiedOfReply, Rating = model.Rating, HelpfulYesTotal = model.HelpfulYesTotal, HelpfulNoTotal = model.HelpfulNoTotal, CreatedOnUtc = DateTime.Now }; _vendorReviewService.InsertVendorReview(vendorReview); model.SuccessfullyVendorReviewed = true; model.Result = _localizationService.GetResource("VendorEnhanced.SuccessfullyVendorReviewed"); } return(View("~/Plugins/Nop.Plugin.Misc.VendorEnhanced/Views/VendorReview.cshtml", model)); }
public virtual async Task PrepareVendorReviewModel(VendorReviewModel model, VendorReview vendorReview, bool excludeProperties, bool formatReviewText) { if (model == null) { throw new ArgumentNullException(nameof(model)); } if (vendorReview == null) { throw new ArgumentNullException(nameof(vendorReview)); } var vendor = await _vendorService.GetVendorById(vendorReview.VendorId); var customer = await _customerService.GetCustomerById(vendorReview.CustomerId); model.Id = vendorReview.Id; model.VendorId = vendorReview.VendorId; model.VendorName = vendor.Name; model.CustomerId = vendorReview.CustomerId; model.CustomerInfo = customer != null ? !string.IsNullOrEmpty(customer.Email) ? customer.Email : _translationService.GetResource("Admin.Customers.Guest") : ""; model.Rating = vendorReview.Rating; model.CreatedOn = _dateTimeService.ConvertToUserTime(vendorReview.CreatedOnUtc, DateTimeKind.Utc); if (!excludeProperties) { model.Title = vendorReview.Title; if (formatReviewText) { model.ReviewText = FormatText.ConvertText(vendorReview.ReviewText); } else { model.ReviewText = vendorReview.ReviewText; } model.IsApproved = vendorReview.IsApproved; } }
public static VendorReviewModel ToModel(this VendorReview Review, Order Order, Product Product) { var model = new VendorReviewModel() { CreatedOnUTC = Review.CreatedOnUTC, CustomerId = Review.CustomerId, HelpfulnessNoTotal = Review.HelpfulnessNoTotal, HelpfulnessYesTotal = Review.HelpfulnessYesTotal, Id = Review.Id, IsApproved = Review.IsApproved, ProductId = Review.ProductId, Rating = Review.Rating, ReviewText = Review.ReviewText, Title = Review.Title, VendorId = Review.VendorId, OrderId = Review.OrderId, ProductName = Product.Name, CertifiedBuyerReview = Review.CertifiedBuyerReview, DisplayCertifiedBadge = Review.DisplayCertifiedBadge }; return(model); }
protected virtual void PrepareVendorReviewModel(VendorReviewModel model, VendorReview vendorReview, bool excludeProperties, bool formatReviewText) { if (model == null) { throw new ArgumentNullException("model"); } if (vendorReview == null) { throw new ArgumentNullException("vendorReview"); } var vendor = _vendorService.GetVendorById(vendorReview.VendorId); var customer = _customerService.GetCustomerById(vendorReview.CustomerId); model.Id = vendorReview.Id; model.VendorId = vendorReview.VendorId; model.VendorName = vendor.Name; model.CustomerId = vendorReview.CustomerId; model.CustomerInfo = customer != null?customer.IsRegistered() ? customer.Email : _localizationService.GetResource("Admin.Customers.Guest") : ""; model.Rating = vendorReview.Rating; model.CreatedOn = _dateTimeHelper.ConvertToUserTime(vendorReview.CreatedOnUtc, DateTimeKind.Utc); if (!excludeProperties) { model.Title = vendorReview.Title; if (formatReviewText) { model.ReviewText = Core.Html.HtmlHelper.FormatText(vendorReview.ReviewText, false, true, false, false, false, false); } else { model.ReviewText = vendorReview.ReviewText; } model.IsApproved = vendorReview.IsApproved; } }
public IActionResult Edit(VendorReviewModel model, bool continueEditing) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageVendorReviews) || _workContext.CurrentVendor != null) { return(AccessDeniedView()); } var vendorReview = _vendorService.GetVendorReviewById(model.Id); var vendor = _vendorService.GetVendorById(vendorReview.VendorId); if (vendorReview == null) { //No vendor review found with the specified id return(RedirectToAction("List")); } if (ModelState.IsValid) { vendorReview.Title = model.Title; vendorReview.ReviewText = model.ReviewText; vendorReview.IsApproved = model.IsApproved; _vendorService.UpdateVendorReview(vendorReview); //update vendor totals _vendorService.UpdateVendorReviewTotals(vendor); SuccessNotification(_localizationService.GetResource("Admin.VendorReviews.Updated")); return(continueEditing ? RedirectToAction("Edit", new { id = vendorReview.Id, VendorId = vendorReview.VendorId }) : RedirectToAction("List")); } //If we got this far, something failed, redisplay form PrepareVendorReviewModel(model, vendorReview, true, false); return(View(model)); }
public ActionResult UpdateReview(VendorReviewModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageVendors)) { return(Content("Access denied")); } var review = _extendedVendorService.GetVendorReview(model.Id); if (review == null) { return(new NullJsonResult()); } review.IsApproved = model.IsApproved; review.Rating = model.Rating; review.ReviewText = model.ReviewText; review.Title = model.Title; review.HelpfulnessNoTotal = model.HelpfulnessNoTotal; review.HelpfulnessYesTotal = model.HelpfulnessYesTotal; _extendedVendorService.SaveVendorReview(review); return(new NullJsonResult()); }
public IActionResult Reviews(DataSourceRequest command, string vendorId) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageVendors)) { return(AccessDeniedView()); } var vendor = _vendorService.GetVendorById(vendorId); if (vendor == null) { throw new ArgumentException("No vendor found with the specified id"); } //a vendor should have access only to his own profile if (_workContext.CurrentVendor != null && vendor.Id != _workContext.CurrentVendor.Id) { return(Content("This is not your vendor")); } var vendorReviews = _vendorService.GetAllVendorReviews("", null, null, null, "", vendorId, command.Page - 1, command.PageSize); var gridModel = new DataSourceResult { Data = vendorReviews.Select(x => { var m = new VendorReviewModel(); PrepareVendorReviewModel(m, x, false, true); return(m); }), Total = vendorReviews.TotalCount, }; return(Json(gridModel)); }
public virtual async Task <VendorReview> UpdateVendorReviewModel(VendorReview vendorReview, VendorReviewModel model) { vendorReview.Title = model.Title; vendorReview.ReviewText = model.ReviewText; vendorReview.IsApproved = model.IsApproved; await _vendorService.UpdateVendorReview(vendorReview); var vendor = await _vendorService.GetVendorById(vendorReview.VendorId); //update vendor totals await _vendorService.UpdateVendorReviewTotals(vendor); return(vendorReview); }