コード例 #1
0
        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
            });
        }
コード例 #2
0
 public FeatureViewModel Create(SerializedAttribute.Feature serializedFeature)
 {
     return(new FeatureViewModel()
     {
         Code = serializedFeature.Code,
         Name = serializedFeature.Name
     });
 }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }