namespace RhSolutions.Tools; internal class ToolFactory { static ReaderFactory readerFactory = RhSolutionsAddIn.ServiceProvider.GetService(); static WriterFactory writerFactory = RhSolutionsAddIn.ServiceProvider.GetService(); static FittingsCalculatorFactory fittingsCalculatorFactory = 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 FittingsTool(readerFactory, writerFactory, fittingsCalculatorFactory, "Sleeves"), "fillcouplings" => new FittingsTool(readerFactory, writerFactory, fittingsCalculatorFactory, "Couplings"), _ => throw new Exception($"Неизвестный инструмент {toolName}"), }; return tool; } }