aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--RhSolutions.AddIn/Tools/ExportTool.cs3
-rw-r--r--RhSolutions.AddIn/Tools/MagicTool.cs23
-rw-r--r--RhSolutions.AddIn/Tools/ToolFactory.cs1
3 files changed, 25 insertions, 2 deletions
diff --git a/RhSolutions.AddIn/Tools/ExportTool.cs b/RhSolutions.AddIn/Tools/ExportTool.cs
index ec3efb4..7b955ce 100644
--- a/RhSolutions.AddIn/Tools/ExportTool.cs
+++ b/RhSolutions.AddIn/Tools/ExportTool.cs
@@ -1,5 +1,4 @@
-using RhSolutions.AddIn;
-#if !NET472
+#if !NET472
using System.Runtime.Versioning;
#endif
diff --git a/RhSolutions.AddIn/Tools/MagicTool.cs b/RhSolutions.AddIn/Tools/MagicTool.cs
new file mode 100644
index 0000000..551194f
--- /dev/null
+++ b/RhSolutions.AddIn/Tools/MagicTool.cs
@@ -0,0 +1,23 @@
+#if !NET472
+using System.Runtime.Versioning;
+#endif
+
+namespace RhSolutions.Tools;
+
+internal class MagicTool : Tool
+{
+ public MagicTool(IServiceProvider provider) : base(provider)
+ {
+ }
+
+ public override void Execute()
+ {
+ Application app = RhSolutionsAddIn.Excel.Application;
+ Worksheet worksheet = app.ActiveWorkbook.ActiveSheet;
+ _reader = _readerFactory.GetReader("Magic");
+ var products = _reader.ReadProducts(new[] { worksheet });
+ _writer = _writerFactory.GetWriter("Excel");
+ _writer.WriteProducts(products);
+ }
+}
+
diff --git a/RhSolutions.AddIn/Tools/ToolFactory.cs b/RhSolutions.AddIn/Tools/ToolFactory.cs
index 49f4db6..7b529c7 100644
--- a/RhSolutions.AddIn/Tools/ToolFactory.cs
+++ b/RhSolutions.AddIn/Tools/ToolFactory.cs
@@ -10,6 +10,7 @@ internal class ToolFactory
"convert" => new ConvertTool(RhSolutionsAddIn.ServiceProvider),
"merge" => new MergeTool(RhSolutionsAddIn.ServiceProvider),
"dxfexport" => new DxfTool(RhSolutionsAddIn.ServiceProvider),
+ "magicexport" => new MagicTool(RhSolutionsAddIn.ServiceProvider),
_ => throw new Exception("Неизвестный инструмент"),
};
return tool;