From 2afcbbf08c21aa7368361269f24240147aa79a00 Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Mon, 29 Nov 2021 17:12:56 +0300 Subject: =?UTF-8?q?=D0=9E=D1=80=D0=B3=D0=B0=D0=BD=D0=B8=D0=B7=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B4=D0=B8=D1=80=D0=B5=D0=BA=D1=82=D0=BE=D1=80?= =?UTF-8?q?=D0=B8=D0=B9=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ExcelDNA/AddIn.cs | 24 ++++++++++++++++++++++++ src/ExcelDNA/Functions.cs | 21 +++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 src/ExcelDNA/AddIn.cs create mode 100644 src/ExcelDNA/Functions.cs (limited to 'src/ExcelDNA') diff --git a/src/ExcelDNA/AddIn.cs b/src/ExcelDNA/AddIn.cs new file mode 100644 index 0000000..dd99667 --- /dev/null +++ b/src/ExcelDNA/AddIn.cs @@ -0,0 +1,24 @@ +using ExcelDna.Integration; +using ExcelDna.Registration; + +namespace Rehau.Sku.Assist +{ + public class AddIn : IExcelAddIn + { + public void AutoOpen() + { + RegisterFunctions(); + } + + public void AutoClose() + { + } + + void RegisterFunctions() + { + ExcelRegistration.GetExcelFunctions() + .ProcessAsyncRegistrations(nativeAsyncIfAvailable: false) + .RegisterFunctions(); + } + } +} diff --git a/src/ExcelDNA/Functions.cs b/src/ExcelDNA/Functions.cs new file mode 100644 index 0000000..6792195 --- /dev/null +++ b/src/ExcelDNA/Functions.cs @@ -0,0 +1,21 @@ +using AngleSharp.Dom; +using ExcelDna.Integration; +using System.Net.Http; +using System.Threading.Tasks; + +namespace Rehau.Sku.Assist +{ + public class Functions + { + private static HttpClient httpClient = new HttpClient(); + + [ExcelFunction] + public static async Task RAUNAME(string request) + { + Task contentTask = Task.Run(() => SkuAssist.GetContent(request, httpClient)); + Task documentTask = await contentTask.ContinueWith(content => SkuAssist.GetDocument(content)); + IProduct product = await documentTask.ContinueWith(doc => SkuAssist.GetProductFromDocument(doc.Result)); + return product == null ? ExcelError.ExcelErrorNull.ToString() : product.ToString(); + } + } +} \ No newline at end of file -- cgit v1.2.3