/// <summary> /// Prepare paged specification attribute group list model /// </summary> /// <param name="searchModel">Specification attribute group search model</param> /// <returns>Specification attribute group list model</returns> public virtual SpecificationAttributeGroupListModel PrepareSpecificationAttributeGroupListModel(SpecificationAttributeGroupSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //get specification attribute groups var specificationAttributeGroups = _specificationAttributeService .GetSpecificationAttributeGroups(searchModel.Page - 1, searchModel.PageSize); if (searchModel.Page == 1) { //dislpay default group with non-grouped specification attributes on first page specificationAttributeGroups.Insert(0, new SpecificationAttributeGroup { Name = _localizationService.GetResource("Admin.Catalog.Attributes.SpecificationAttributes.SpecificationAttributeGroup.DefaultGroupName") }); } //prepare list model var model = new SpecificationAttributeGroupListModel().PrepareToGrid(searchModel, specificationAttributeGroups, () => { //fill in model values from the entity return(specificationAttributeGroups.Select(attribute => attribute.ToModel <SpecificationAttributeGroupModel>())); }); return(model); }
/// <summary> /// Prepare available specification attribute groups /// </summary> /// <param name="items">Specification attributes</param> /// <param name="withSpecialDefaultItem">Whether to insert the first special item for the default value</param> /// <param name="defaultItemText">Default item text; pass null to use default value of the default item text</param> public virtual void PrepareSpecificationAttributeGroups(IList <SelectListItem> items, bool withSpecialDefaultItem = true, string defaultItemText = null) { if (items == null) { throw new ArgumentNullException(nameof(items)); } //prepare available specification attribute groups var availableSpecificationAttributeGroups = _specificationAttributeService.GetSpecificationAttributeGroups(); foreach (var group in availableSpecificationAttributeGroups) { items.Add(new SelectListItem { Value = group.Id.ToString(), Text = group.Name }); } // use empty string for nullable field var defaultItemValue = string.Empty; //insert special item for the default value PrepareDefaultItem(items, withSpecialDefaultItem, defaultItemText, defaultItemValue); }