예제 #1
0
        private void loadSufficientGroup(ConfigGramer.Item item, ref Aggregation aggregation)
        {
            ASTQualifier[] qualifiers =
            {
                new ASTQualifier(ItemType.SETTING),
                new ASTQualifier(ItemType.VALUE),
                new ASTQualifier(ItemType.LIST),
                new ASTQualifier(ItemType.VALUE_LIST)
            };
            if (item.context == ItemType.SETTING_LIST)
            {
                ConfigGramer._SettingList sufficientList = (ConfigGramer._SettingList)item.value;
                for (int i = 0; i < sufficientList.Count; i++)
                {
                    switch (sufficientList.Value[i].Name.Value)
                    {
                    case "congress_group":
                        qualifiers[0].itemQualifier = "congress_group";
                        aggregation.Congress        = configuration.GetItem(item, qualifiers).GetStringList();
                        break;

                    case "necessary_group":
                        qualifiers[0].itemQualifier = "necessary_group";
                        aggregation.NecessaryGroup  = configuration.GetItem(item, qualifiers).GetStringList();
                        break;

                    default:
                        return;
                    }
                }
            }
        }
예제 #2
0
        private void LoadAggregation(ConfigGramer configuration)
        {
            ConfigGramer.Item result = configuration.GetItem(
                new ASTQualifier(ItemType.CONFIGURATION),
                new ASTQualifier(ItemType.SETTING_LIST),
                new ASTQualifier(ItemType.SETTING, "aggregation"),
                new ASTQualifier(ItemType.VALUE),
                new ASTQualifier(ItemType.GROUP),
                new ASTQualifier(ItemType.VALUE),
                new ASTQualifier(ItemType.SETTING_LIST)
                );

            if (result.IsEmpty()) //checks to make sure we have an aggregation setting with values in it
            {
                return;
            }

            ConfigGramer._SettingList valueList  = (ConfigGramer._SettingList)result.value;
            ASTQualifier[]            qualifiers =
            {
                new ASTQualifier(ItemType.SETTING),
                new ASTQualifier(ItemType.VALUE),
                new ASTQualifier(ItemType.SCALAR_VALUE),
                new ASTQualifier(ItemType.STRING)
            };
            Aggregation aggregation = new Aggregation();

            for (int i = 0; i < valueList.Count; i++)
            {
                switch (valueList.Value[i].Name.Value)
                {
                case "congress_threshold":
                    qualifiers[3].itemType      = ItemType.FLOAT;
                    qualifiers[0].itemQualifier = "congress_threshold";
                    aggregation.Threshold       = (configuration.GetItem(result, qualifiers).GetFloat() * 100).ToString();

                    break;

                case "sufficient":    //{PluginManager.ConfigGramer._Value} {PluginManager.ConfigGramer._Group} {PluginManager.ConfigGramer._SettingList}

                    loadSufficientGroup(configuration.GetItem(
                                            result,
                                            new ASTQualifier(ItemType.SETTING, "sufficient"),
                                            new ASTQualifier(ItemType.VALUE),
                                            new ASTQualifier(ItemType.GROUP),
                                            new ASTQualifier(ItemType.SETTING_LIST)
                                            ), ref aggregation);

                    break;
                }
            }

            PublicAggregation  = aggregation;
            NumberTextBox.Text = aggregation.Threshold;
        }