public FilterViewModel Create(string additionalCssClass) { string url = string.Format("/{0}", this.RequestHandler.HttpContext.GetRouteValue("url")); Catalog catalog = this.RequestHandler.Storage.GetRepository <ICatalogRepository>().WithUrl(url); IProductProvider productProvider = StringActivator.CreateInstance <IProductProvider>(catalog.CSharpClassName); IEnumerable <SerializedAttribute> serializedAttributes = null; if (productProvider != null) { serializedAttributes = productProvider.GetAttributes(this.RequestHandler, catalog); } List <FeatureViewModel> features = new List <FeatureViewModel>(); foreach (SerializedAttribute serializedAttribute in serializedAttributes) { SerializedAttribute.Feature serializedFeature = JsonConvert.DeserializeObject <SerializedAttribute.Feature>(serializedAttribute.SerializedFeature); FeatureViewModel feature = features.FirstOrDefault(f => f.Code == serializedFeature.Code); if (feature == null) { feature = new FeatureViewModelFactory(this.RequestHandler).Create(serializedFeature); feature.Attributes = new List <AttributeViewModel>(); features.Add(feature); } (feature.Attributes as List <AttributeViewModel>).Add(new AttributeViewModelFactory(this.RequestHandler).Create(serializedAttribute)); } return(new FilterViewModel() { Features = features, AdditionalCssClass = additionalCssClass }); }
public FeatureViewModel Create(SerializedAttribute.Feature serializedFeature) { return(new FeatureViewModel() { Code = serializedFeature.Code, Name = serializedFeature.Name }); }
private SerializedAttribute.Feature SerializeFeature(Culture culture, Feature feature) { SerializedAttribute.Feature serializedFeature = new SerializedAttribute.Feature(); serializedFeature.Code = feature.Code; serializedFeature.Name = this.requestHandler.GetLocalizationValue(feature.NameId); serializedFeature.Position = feature.Position; return(serializedFeature); }
private SerializedAttribute SerializeAttribute(Culture culture, Attribute attribute) { SerializedAttribute.Feature serializedFeature = this.SerializeFeature( culture, this.requestHandler.Storage.GetRepository <IFeatureRepository>().WithKey(attribute.FeatureId) ); SerializedAttribute serializedAttribute = new SerializedAttribute(); serializedAttribute.CultureId = culture.Id; serializedAttribute.AttributeId = attribute.Id; serializedAttribute.Value = this.requestHandler.GetLocalizationValue(attribute.ValueId); serializedAttribute.Position = attribute.Position; serializedAttribute.SerializedFeature = this.SerializeObject(serializedFeature); return(serializedAttribute); }