/// <summary> /// Recursively collects names of base <see cref="FeatureDefinition"/>s /// </summary> /// <param name="name">Feature name</param> /// <param name="set">Collection that stores names that may be used to disable the feature with given <paramref name="name"/></param> private void AddBaseDefinitionNamesToSet(string name, ISet <string> set) { foreach (var feature in AllDefinitions.Where(n => n.Metadata.Name.Equals(name, StringComparison.Ordinal))) { set.Add(feature.Metadata.Name); if (feature.Metadata.BaseDefinition == null) { continue; } foreach (var baseDefinition in feature.Metadata.BaseDefinition) { AddBaseDefinitionNamesToSet(baseDefinition, set); } } }
public WurmLogDefinitions() { foreach (var logDefinition in Definitions) { AddLogTypeMapping(logDefinition.LogPrefix, logDefinition.LogType); } var allTypesCount = AllLogTypes.Count(); var allDefinitionsCount = AllDefinitions.Count(); if (allTypesCount != allDefinitionsCount) { throw new InvalidOperationException("AllDefinitions != AllLogTypes"); } }
private static void Register(AccountDefinition worker) { _prefixToAccount[worker.Prefix] = worker; AllDefinitions.Add(worker); }