/// <summary>
        /// Initializes a new instance of the <see cref="AnalysisExplicitCategory"/> class.
        /// </summary>
        /// <param name="analysis">Analysis</param>
        /// <param name="configCategory">Config category</param>
        public AnalysisExplicitCategory(Analysis analysis, UPConfigAnalysisCategory configCategory)
        {
            this.Analysis         = analysis;
            this.ConfigCategory   = configCategory;
            this.valueDictionary  = new Dictionary <string, object>();
            this.sourceValueArray = new List <object>();
            foreach (UPConfigAnalysisCategoryValue configValue in configCategory.Values)
            {
                AnalysisExplicitCategoryValue value = new AnalysisExplicitCategoryValue(this, configValue);
                this.valueDictionary.SetObjectForKey(value, value.Key);
                this.sourceValueArray.Add(value);
            }

            if (this.ConfigCategory?.OtherLabel?.Length > 0)
            {
                this.otherValue = new AnalysisExplicitCategoryValue(this, this.ConfigCategory.OtherLabel);
                if (this.otherValue != null)
                {
                    this.valueDictionary.SetObjectForKey(this.otherValue, this.otherValue.Key);
                    this.sourceValueArray.Add(this.otherValue);
                }
            }
            else
            {
                this.otherValue = null;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="AnalysisExplicitCategoryField"/> class.
        /// </summary>
        /// <param name="analysis">Analysis</param>
        /// <param name="parentField">Parent field</param>
        /// <param name="categoryName">Category name</param>
        public AnalysisExplicitCategoryField(Analysis analysis, AnalysisField parentField, string categoryName)
            : base(analysis, $"{parentField.Key}({categoryName})")
        {
            this.categoryName = categoryName;
            UPConfigAnalysisCategory configCategory = ConfigurationUnitStore.DefaultStore.AnalysisCategoryByName(this.categoryName);

            if (configCategory == null)
            {
                return;
            }

            this.ParentField = parentField;
            var field = this.ParentField as AnalysisExplicitCategoryField;

            this.SourceField = field != null ? field.SourceField : this.ParentField;

            this.ExplicitCategory = this.SourceField.IsDateValue
                                    ? new AnalysisExplicitDateCategory(analysis, configCategory)
                                    : new AnalysisExplicitCategory(analysis, configCategory);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="AnalysisExplicitDateCategory"/> class.
 /// </summary>
 /// <param name="analysis">Analysis</param>
 /// <param name="category">Category</param>
 public AnalysisExplicitDateCategory(Analysis analysis, UPConfigAnalysisCategory category)
     : base(analysis, category)
 {
 }