public async Task <IActionResult> Index() { var seller = await HttpContext.GetMemberAsync(); var model = new DashboardModel { ProductListEvaluation = await _productService.EvaluateAsync(new ProductFilter { SellerId = seller.Id }), CategoryListEvaluation = await _categoryService.EvaluateAsync(new CategoryFilter { SellerId = seller.Id }), BannerListEvaluation = await _bannerService.EvaluateAsync(new BannerFilter { SellerId = seller.Id }), ReviewListEvaluation = await _reviewService.EvaluateAsync(new ReviewFilter { SellerId = seller.Id }) }; return(View(model)); }
public async Task <IActionResult> PrepareProductDetailsView(Product product, int page) { var seller = await HttpContext.GetSellerAsync(); var customer = await HttpContext.GetMemberAsync(); var model = new ProductModel(); await _appService.PrepareModelAsync(model, product); var reviewFilter = new ReviewFilter { Approved = true, SellerId = seller.Id, ProductId = product.Id }; var reviewEvaluation = await _reviewService.EvaluateAsync(reviewFilter); model.ReviewListModel = new ReviewListModel { Filter = reviewFilter, Evaluation = reviewEvaluation }; model.ReviewEvaluation = reviewEvaluation; if (customer != null) { model.IsAddedToCart = await _cartService.GetQuery(new CartFilter { CustomerId = customer.Id, SellerId = seller.Id, ProductId = product.Id, Type = CartType.Cart }).AnyAsync(); model.IsAddedToWishlist = await _cartService.GetQuery(new CartFilter { CustomerId = customer.Id, SellerId = seller.Id, ProductId = product.Id, Type = CartType.Wishlist }).AnyAsync(); } var reviews = await _reviewService.GetQuery(reviewFilter).ToPageableAsync(page, _appSettings.PageDefaultSize); await _appService.PrepareModelAsync(model.ReviewListModel, reviews); return(View("ProductDetails", model)); }
public async Task <IActionResult> Stores(int page, UserFilter filter) { filter.StoreAccess = StoreAccess.Approved; filter.StoreSetup = true; filter.StorePlanActive = true; var users = await _userService.GetQuery(filter) .ToPageableAsync(page, _appSettings.PageDefaultSize); var model = new UserListModel { Filter = filter }; await _appService.PrepareModelAsync(model, users, prepareChildModel : async(userModel, user) => { userModel.ReviewEvaluation = await _reviewService.EvaluateAsync(new ReviewFilter { SellerId = user.Id, Approved = true, }); }); return(View(nameof(Stores), model)); }
public async Task PrepareModelAsync(ProductListModel model, IPageable <Product> products, User seller, User customer = null) { if (model == null) { throw new ArgumentNullException(nameof(model)); } if (products == null) { throw new ArgumentNullException(nameof(products)); } foreach (var product in products) { var productModel = new ProductModel(); await PrepareModelAsync(productModel, product); if (customer != null) { productModel.IsAddedToCart = await _cartService.GetQuery(new CartFilter { CustomerId = customer.Id, SellerId = seller.Id, ProductId = product.Id, Type = CartType.Cart }).AnyAsync(); productModel.IsAddedToWishlist = await _cartService.GetQuery(new CartFilter { CustomerId = customer.Id, SellerId = seller.Id, ProductId = product.Id, Type = CartType.Wishlist }).AnyAsync(); } // NOTE: "StoreController.cs" with the line number 299 for code changes. productModel.ReviewEvaluation = await _reviewService.EvaluateAsync(new ReviewFilter { Approved = true, SellerId = seller.Id, ProductId = product.Id }); model.Items.Add(productModel); } model.LowestMinPrice = 0; model.HighestMaxPrice = (int)Math.Min(_appSettings.CurrencyMaxValue, int.MaxValue); model.SortOptions.AddRange(SelectListHelper.GetEnumSelectList(selectedEnum: model.Filter.Sort, defaultText: "Any")); model.StockOptions.AddRange(SelectListHelper.GetEnumSelectList(selectedEnum: model.Filter.Stock, defaultText: "All")); model.PublishedOptions.AddRange(SelectListHelper.GetBoolSelectList("Published", "Unpublished", selectedBool: model.Filter.Published, defaultText: "All")); model.RatingOptions.AddRange(SelectListHelper.GetSelectList(Enumerable.Range(1, 4).Reverse(), (x) => new SelectListItem <int>(text: $"{"star".ToQuantity(x)} or more", value: x.ToString(), selected: x == model.Filter.Rating))); model.DiscountOptions.AddRange(SelectListHelper.GetSelectList(Enumerable.Range(1, 4).Select(x => x * 20).Reverse(), (x) => new SelectListItem <int>(text: $"{x}% or more", value: x.ToString(), selected: x == model.Filter.Discount))); var categories = await _categoryService.ListAsync(new CategoryFilter() { SellerId = seller.Id, Published = true }); model.CategoryOptions.AddRange(SelectListHelper.GetSelectList(categories, x => new SelectListItem <Category>(text: x.Name, value: x.Slug, x.Slug == model.Filter.Search), defaultText: "All")); model.Page = products.Page; model.PageSize = products.PageSize; model.PageFrom = products.PageFrom; model.PageTo = products.PageTo; model.TotalPages = products.TotalPages; model.TotalItems = products.TotalItems; }