Beispiel #1
0
        public Task PrepareModelAsync(ReviewListModel model, IPageable <Review> reviews)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }
            if (reviews == null)
            {
                throw new ArgumentNullException(nameof(reviews));
            }

            foreach (var review in reviews)
            {
                var reviewModel = new ReviewModel
                {
                    Review = review
                };
                model.Items.Add(reviewModel);
            }

            model.ApprovedOptions.AddRange(SelectListHelper.GetBoolSelectList("Approved", "Rejected", selectedBool: model.Filter.Approved, defaultText: "All"));
            model.RatingOptions.AddRange(SelectListHelper.GetSelectList(Enumerable.Range(1, 5).Reverse(),
                                                                        (x) => new SelectListItem <int>(text: $"{"star".ToQuantity(x)}", value: x.ToString(), selected: x == model.Filter.Rating), defaultText: "All"));

            model.Page       = reviews.Page;
            model.PageSize   = reviews.PageSize;
            model.PageFrom   = reviews.PageFrom;
            model.PageTo     = reviews.PageTo;
            model.TotalPages = reviews.TotalPages;
            model.TotalItems = reviews.TotalItems;

            return(Task.CompletedTask);
        }
Beispiel #2
0
        public Task PrepareModelAsync(StoreEditModel model, User user)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }
            if (user == null)
            {
                throw new ArgumentNullException(nameof(user));
            }

            model = _mapper.Map(user, model);

            model.StoreDeliveryRequiredOptions.AddRange(SelectListHelper.GetBoolSelectList("Required", "Not Required", selectedBool: model.StoreDeliveryRequired));
            model.StoreStatusOptions.AddRange(SelectListHelper.GetEnumSelectList <StoreStatus>(selectedEnum: model.StoreStatus));

            model.StoreThemeModeOptions.AddRange(SelectListHelper.GetEnumSelectList <ThemeMode>(selectedEnum: model.StoreThemeMode));
            model.StoreThemeStyleOptions.AddRange(SelectListHelper.GetEnumSelectList <ThemeStyle>(selectedEnum: model.StoreThemeStyle));

            model.StoreCategorySelections.AddRange(user.StoreCategory.ExpandEnum());
            model.StoreCategoryOptions.AddRange(SelectListHelper.GetEnumSelectList <StoreCategory>(selectedEnum: user.StoreCategory));

            return(Task.CompletedTask);
        }
Beispiel #3
0
        public async Task PrepareModelAsync(UserListModel model, IPageable <User> users, Func <UserModel, User, Task> prepareChildModel = null)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }
            if (users == null)
            {
                throw new ArgumentNullException(nameof(users));
            }

            foreach (var user in users)
            {
                var userModel = new UserModel
                {
                    User = user
                };

                if (prepareChildModel != null)
                {
                    await prepareChildModel(userModel, user);
                }

                model.Items.Add(userModel);
            }

            model.StoreCategoryOptions.AddRange(SelectListHelper.GetEnumSelectList(selectedEnum: model.Filter.StoreCategory, defaultText: "All"));
            model.StoreSetupOptions.AddRange(SelectListHelper.GetBoolSelectList("Completed", "Not Completed", selectedBool: model.Filter.StoreSetup, defaultText: "Any"));

            model.Page       = users.Page;
            model.PageSize   = users.PageSize;
            model.PageFrom   = users.PageFrom;
            model.PageTo     = users.PageTo;
            model.TotalPages = users.TotalPages;
            model.TotalItems = users.TotalItems;
        }
Beispiel #4
0
        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;
        }