private IList <ProductPropertiesViewModel> MapProductProperties(ResultSet <Product> variants) { var productProperties = new List <ProductPropertiesViewModel>(); var uniqueVariants = from v in variants.SelectMany(p => p.GetUserDefinedFields()) group v by v.Key into g select g; foreach (var prop in uniqueVariants) { var productPropertiesViewModel = new ProductPropertiesViewModel(); productPropertiesViewModel.PropertyName = prop.Key; productPropertiesViewModel.DisplayName = ProductIndexDefinition.FieldDefinitions[prop.Key] .GetDisplayName(LocalizationContext.CurrentCulture.Name); foreach (var value in prop.Select(p => p.Value).Compact().Distinct()) { productPropertiesViewModel.Values.Add(value.ToString()); } productProperties.Add(productPropertiesViewModel); } return(productProperties); }
private IList <ProductPropertiesViewModel> MapProductProperties(ResultSet <Product> variants) { var productProperties = new List <ProductPropertiesViewModel>(); var uniqueVariants = from v in variants.SelectMany(p => p.GetUserDefinedFields()) group v by v.Key into g select g; foreach (var prop in uniqueVariants) { var productPropertiesViewModel = new ProductPropertiesViewModel(); productPropertiesViewModel.PropertyName = prop.Key; foreach (var value in prop.Select(p => p.Value).Distinct()) { productPropertiesViewModel.Values.Add(value.ToString()); } productProperties.Add(productPropertiesViewModel); } return(productProperties); }
private IList <ProductPropertiesViewModel> MapProductProperties(Product product) { var productProperties = new List <ProductPropertiesViewModel>(); var uniqueVariants = from v in product.Variants.SelectMany(p => p.ProductProperties) where v.ProductDefinitionField.DisplayOnSite group v by v.ProductDefinitionField into g select g; foreach (var prop in uniqueVariants) { var productPropertiesViewModel = new ProductPropertiesViewModel(); productPropertiesViewModel.PropertyName = prop.Key.Name; foreach (var value in prop.Select(p => p.Value).Distinct()) { productPropertiesViewModel.Values.Add(value); } productProperties.Add(productPropertiesViewModel); } return(productProperties); }