/// <summary> /// Prepare paged specification attribute option list model /// </summary> /// <param name="searchModel">Specification attribute option search model</param> /// <param name="specificationAttribute">Specification attribute</param> /// <returns>Specification attribute option list model</returns> public virtual SpecificationAttributeOptionListModel PrepareSpecificationAttributeOptionListModel( SpecificationAttributeOptionSearchModel searchModel, SpecificationAttribute specificationAttribute) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (specificationAttribute == null) { throw new ArgumentNullException(nameof(specificationAttribute)); } //get specification attribute options var options = _specificationAttributeService .GetSpecificationAttributeOptionsBySpecificationAttribute(specificationAttribute.Id).ToPagedList(searchModel); //prepare list model var model = new SpecificationAttributeOptionListModel().PrepareToGrid(searchModel, options, () => { return(options.Select(option => { //fill in model values from the entity var optionModel = option.ToModel <SpecificationAttributeOptionModel>(); //in order to save performance to do not check whether a product is deleted, etc optionModel.NumberOfAssociatedProducts = _specificationAttributeService .GetProductSpecificationAttributeCount(specificationAttributeOptionId: option.Id); return optionModel; })); }); return(model); }
/// <summary> /// Prepare paged specification attribute option list model /// </summary> /// <param name="searchModel">Specification attribute option search model</param> /// <param name="specificationAttribute">Specification attribute</param> /// <returns>Specification attribute option list model</returns> public virtual SpecificationAttributeOptionListModel PrepareSpecificationAttributeOptionListModel( SpecificationAttributeOptionSearchModel searchModel, SpecificationAttribute specificationAttribute) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (specificationAttribute == null) { throw new ArgumentNullException(nameof(specificationAttribute)); } //get specification attribute options var options = _specificationAttributeService.GetSpecificationAttributeOptionsBySpecificationAttribute(specificationAttribute.Id); //prepare list model var model = new SpecificationAttributeOptionListModel { Data = options.PaginationByRequestModel(searchModel).Select(option => { //fill in model values from the entity var optionModel = option.ToModel <SpecificationAttributeOptionModel>(); return(optionModel); }), Total = options.Count }; return(model); }