コード例 #1
0
        public List <ProductPictureViewModel> Search(ProductPictureSearchModel searchModel)
        {
            var query = _context.ProductPictures.Include(x => x.Product).Select(x => new ProductPictureViewModel
            {
                Id           = x.Id,
                Product      = x.Product.Name,
                CreationDate = x.CreationDate.ToFarsi(),
                Picture      = x.Picture,
                ProductId    = x.ProductId,
                IsRemoved    = x.IsRemoved
            });

            if (searchModel.ProductId != 0)
            {
                query = query.Where(x => x.ProductId == searchModel.ProductId);
            }
            return(query.OrderByDescending(x => x.Id).ToList());
        }
コード例 #2
0
        /// <summary>
        /// Prepare paged product picture list model
        /// </summary>
        /// <param name="searchModel">Product picture search model</param>
        /// <param name="product">Product</param>
        /// <returns>Product picture list model</returns>
        public virtual ProductPictureListModel PrepareProductPictureListModel(ProductPictureSearchModel searchModel, Product product)
        {
            if (searchModel == null)
            {
                throw new ArgumentNullException(nameof(searchModel));
            }

            if (product == null)
            {
                throw new ArgumentNullException(nameof(product));
            }

            //get product pictures
            var productPictures = _productService.GetProductPicturesByProductId(product.Id);

            //prepare grid model
            var model = new ProductPictureListModel
            {
                Data = productPictures.PaginationByRequestModel(searchModel).Select(productPicture =>
                {
                    //fill in model values from the entity
                    var productPictureModel = new ProductPictureModel
                    {
                        Id           = productPicture.Id,
                        ProductId    = productPicture.ProductId,
                        PictureId    = productPicture.PictureId,
                        DisplayOrder = productPicture.DisplayOrder
                    };

                    //fill in additional values (not existing in the entity)
                    var picture = _pictureService.GetPictureById(productPicture.PictureId)
                                  ?? throw new Exception("Picture cannot be loaded");

                    productPictureModel.PictureUrl             = _pictureService.GetPictureUrl(picture);
                    productPictureModel.OverrideAltAttribute   = picture.AltAttribute;
                    productPictureModel.OverrideTitleAttribute = picture.TitleAttribute;

                    return(productPictureModel);
                }),
                Total = productPictures.Count
            };

            return(model);
        }
コード例 #3
0
        /// <summary>
        /// Prepare product picture search model
        /// </summary>
        /// <param name="searchModel">Product picture search model</param>
        /// <param name="product">Product</param>
        /// <returns>Product picture search model</returns>
        protected virtual ProductPictureSearchModel PrepareProductPictureSearchModel(ProductPictureSearchModel searchModel, Product product)
        {
            if (searchModel == null)
            {
                throw new ArgumentNullException(nameof(searchModel));
            }

            if (product == null)
            {
                throw new ArgumentNullException(nameof(product));
            }

            searchModel.ProductId = product.Id;

            //prepare page parameters
            searchModel.SetGridPageSize();

            return(searchModel);
        }
コード例 #4
0
        public List <ProductPictureViewModel> Search(ProductPictureSearchModel searchModel)
        {
            var query = _db.ProductPictures.Include(p => p.Product).Select(p => new ProductPictureViewModel()
            {
                Id           = p.Id,
                Picture      = p.Picture,
                Product      = p.Product.Name,
                CreationDate = p.CreationDate.ToPersianDate(),
                IsRemoved    = p.IsRemoved,
                ProductId    = p.ProductId
            });

            if (searchModel.ProductId != 0)
            {
                query = query.Where(p => p.ProductId == searchModel.ProductId);
            }

            return(query.OrderByDescending(p => p.Id).AsNoTracking().ToList());
        }
コード例 #5
0
        public virtual IActionResult ProductPictureList(ProductPictureSearchModel searchModel)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts))
            {
                return(AccessDeniedKendoGridJson());
            }

            //try to get a product with the specified id
            var product = _productService.GetProductById(searchModel.ProductId)
                          ?? throw new ArgumentException("No product found with the specified id");

            //a vendor should have access only to his products
            if (_workContext.CurrentVendor != null && product.VendorId != _workContext.CurrentVendor.Id)
            {
                return(Content("This is not your product"));
            }

            //prepare model
            var model = _productModelFactory.PrepareProductPictureListModel(searchModel, product);

            return(Json(model));
        }
コード例 #6
0
 public void OnGet(ProductPictureSearchModel searchModel)
 {
     Products = new SelectList(_productApplication.GetProducts(),
                               "Id", "Name");
     ProductPictures = _productPictureApplication.Search(searchModel);
 }
コード例 #7
0
 public List <ProductPictureViewModel> Search(ProductPictureSearchModel searchModel)
 {
     return(_productPictureRepository.Search(searchModel));
 }
コード例 #8
0
 public void OnGet(ProductPictureSearchModel searchModel)
 {
     Slides = _slideApplication.GetList();
 }