/// <summary>
        /// Prepare paged list model of products that use the specification attribute
        /// </summary>
        /// <param name="searchModel">Search model of products that use the specification attribute</param>
        /// <param name="specificationAttribute">Specification attribute</param>
        /// <returns>List model of products that use the specification attribute</returns>
        public virtual SpecificationAttributeProductListModel PrepareSpecificationAttributeProductListModel(
            SpecificationAttributeProductSearchModel searchModel, SpecificationAttribute specificationAttribute)
        {
            if (searchModel == null)
            {
                throw new ArgumentNullException(nameof(searchModel));
            }

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

            //get products
            var products = _specificationAttributeService.GetProductsBySpecificationAttributeId(
                specificationAttributeId: specificationAttribute.Id,
                pageIndex: searchModel.Page - 1, pageSize: searchModel.PageSize);

            //prepare list model
            var model = new SpecificationAttributeProductListModel().PrepareToGrid(searchModel, products, () =>
            {
                //fill in model values from the entity
                return(products.Select(product =>
                {
                    var specificationAttributeProductModel = product.ToModel <SpecificationAttributeProductModel>();
                    specificationAttributeProductModel.ProductId = product.Id;
                    specificationAttributeProductModel.ProductName = product.Name;
                    specificationAttributeProductModel.SpecificationAttributeId = specificationAttribute.Id;

                    return specificationAttributeProductModel;
                }));
            });

            return(model);
        }
Пример #2
0
        /// <summary>
        /// Prepare paged list model of products that use the specification attribute
        /// </summary>
        /// <param name="searchModel">Search model of products that use the specification attribute</param>
        /// <param name="specificationAttribute">Specification attribute</param>
        /// <returns>List model of products that use the specification attribute</returns>
        public virtual SpecificationAttributeProductListModel PrepareSpecificationAttributeProductListModel(
            SpecificationAttributeProductSearchModel searchModel, SpecificationAttribute specificationAttribute)
        {
            if (searchModel == null)
            {
                throw new ArgumentNullException(nameof(searchModel));
            }

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

            //get products
            var products = _specificationAttributeService.GetProductsBySpecificationAttributeId(
                specificationAttributeId: specificationAttribute.Id,
                pageIndex: searchModel.Page - 1, pageSize: searchModel.PageSize);

            //prepare list model
            var model = new SpecificationAttributeProductListModel
            {
                //fill in model values from the entity
                Data = products.Select(product => new SpecificationAttributeProductModel
                {
                    SpecificationAttributeId = specificationAttribute.Id,
                    ProductId   = product.Id,
                    ProductName = product.Name,
                    Published   = product.Published
                }),
                Total = products.TotalCount
            };

            return(model);
        }
Пример #3
0
        public virtual IActionResult UsedByProducts(int specificationAttributeId, DataSourceRequest command)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageAttributes))
            {
                return(AccessDeniedKendoGridJson());
            }

            var products = _specificationAttributeService.GetProductsBySpecificationAttributeId(specificationAttributeId, command.Page - 1,
                                                                                                command.PageSize);

            var gridModel = new DataSourceResult
            {
                Data = products.Select(product => new SpecificationAttributeOptionModel.UsedByProducts
                {
                    SpecificationAttributeId = specificationAttributeId,
                    ProductId   = product.Id,
                    ProductName = product.Name,
                    Published   = product.Published
                }),
                Total = products.TotalCount
            };

            return(Json(gridModel));
        }