From 136aa7f238472558a8909b811b1af8b4df731eae Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Tue, 23 May 2023 06:54:37 +0300 Subject: [PATCH] Add Magic Tool --- RhSolutions.AddIn/Tools/ExportTool.cs | 3 +-- RhSolutions.AddIn/Tools/MagicTool.cs | 23 +++++++++++++++++++++++ RhSolutions.AddIn/Tools/ToolFactory.cs | 1 + 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 RhSolutions.AddIn/Tools/MagicTool.cs 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;