using System; using System.Collections.Generic; namespace CadParamPluging.Cad { public static class TemplateDrawingRegistry { private static readonly Dictionary Generators = new Dictionary(StringComparer.OrdinalIgnoreCase); static TemplateDrawingRegistry() { Register(new RingMachinedRollingGenerator()); Register(new RingRawRollingGenerator()); Register(new BlockRawFreeForgeRoundHeadGenerator()); Register(new RingRawFreeForgeNonCenterPunchGenerator()); } public static bool TryResolve(string templateKey, out ITemplateDrawingGenerator generator) { generator = null; if (string.IsNullOrWhiteSpace(templateKey)) { return false; } return Generators.TryGetValue(templateKey, out generator); } private static void Register(ITemplateDrawingGenerator generator) { if (generator == null || string.IsNullOrWhiteSpace(generator.TemplateKey)) { return; } Generators[generator.TemplateKey] = generator; } } }