Example #1
0
        public AttributeFilterModel fill()
        {
            this.AttributeFilterDictionary = new Dictionary<string, AttributeFilterStruct>();
            AttributePreviewModel attributePreviewModel = new AttributePreviewModel().fill(false);

            this.AttributeFilterDictionary.Add("Unit", new AttributeFilterStruct());
            this.AttributeFilterDictionary.Add("Data Type", new AttributeFilterStruct());

            string key = "";
            FilterValueStruct value = new FilterValueStruct();

            foreach (AttributePreviewStruct aps in attributePreviewModel.AttributePreviews)
            {
                key = aps.Unit.Name.ToLower().Replace(" ", "");
                value = new FilterValueStruct();

                if (this.AttributeFilterDictionary["Unit"].Values.ContainsKey(key))
                {
                    this.AttributeFilterDictionary["Unit"].Values[key].Appearance.Add(aps.Id);
                }
                else
                {
                    value.Name = aps.Unit.Name;
                    value.Appearance.Add(aps.Id);
                    this.AttributeFilterDictionary["Unit"].Values.Add(key, value);
                }

                key = aps.DataType.ToLower().Replace(" ", "");
                value = new FilterValueStruct();

                if (this.AttributeFilterDictionary["Data Type"].Values.ContainsKey(key))
                {
                    this.AttributeFilterDictionary["Data Type"].Values[key].Appearance.Add(aps.Id);
                }
                else
                {
                    value.Name = aps.DataType;
                    value.Appearance.Add(aps.Id);
                    this.AttributeFilterDictionary["Data Type"].Values.Add(key, value);
                }
            }
            foreach (KeyValuePair<string, AttributeFilterStruct> kv in this.AttributeFilterDictionary)
            {
                kv.Value.Values = kv.Value.Values.OrderBy(v => v.Value.Name).ToDictionary(v => v.Key, v => v.Value);
            }
            return this;
        }