namespace RhSolutions.Tools; internal class ToolFactory { static ReaderFactory readerFactory = RhSolutionsAddIn.ServiceProvider.GetService(); static WriterFactory writerFactory = RhSolutionsAddIn.ServiceProvider.GetService(); static IFittingsCalculator sleevesCaluculator = RhSolutionsAddIn.ServiceProvider.GetService(); public Tool GetTool(string toolName) { Tool tool = toolName switch { "export" => new ExportTool(readerFactory, writerFactory), "convert" => new ConvertTool(readerFactory, writerFactory), "merge" => new MergeTool(readerFactory, writerFactory), "dxfexport" => new DxfTool(readerFactory, writerFactory), "guess" => new GuessTool(readerFactory, writerFactory), "fillsleeves" => new SleevesTool(readerFactory, writerFactory, sleevesCaluculator), _ => throw new Exception($"Неизвестный инструмент {toolName}"), }; return tool; } }