Exemplo n.º 1
0
        public ConfigData GetConfigData()
        {
            ConfigData configData = new ConfigData();

            configData.Name = Constants.ConfigName;
            foreach (KeyValuePair <string, Dictionary <string, object> > keyValuePair in _configData)
            {
                ConfigBlock configBlock = new ConfigBlock();
                configBlock.Name = keyValuePair.Key;
                configData.ModuleConfigData.Add(configBlock);
                foreach (KeyValuePair <string, object> itemPair in keyValuePair.Value)
                {
                    ConfigItem configItem = new ConfigItem();
                    configItem.Name  = itemPair.Key;
                    configItem.Value = itemPair.Value.ToString();
                    Type type = itemPair.Value.GetType();
                    if (itemPair.Key.Equals("PlatformEncoding"))
                    {
                        type = typeof(Encoding);
                    }
                    configItem.Type = $"{type.Namespace}.{type.Name}";
                    configBlock.ConfigItems.Add(configItem);
                }
            }
            return(configData);
        }
Exemplo n.º 2
0
        public static ConfigBlock <T> Setup <T>() where T : Data <T>
        {
            lock (ConcurrentLock)
            {
                var t = typeof(T);
                if (ConfigBlockCache.ContainsKey(t))
                {
                    return((ConfigBlock <T>)ConfigBlockCache[t]);
                }

                var e = new ConfigBlock <T>
                {
                    Setup       = typeof(T).GetCustomAttributes(false).OfType <ModerationPrimitiveAttribute>().FirstOrDefault(),
                    LogManager  = new ModerationLog <T>(),
                    TaskManager = new ModerationTask <T>()
                };

                ConfigBlockCache.Add(t, e);

                ConfigBlockCache[t] = e;

                return(e);
            }
        }