From 8a869e73fb1873b1f85203b7a4a18dc8a2325a11 Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Wed, 8 Dec 2021 14:38:23 +0300 Subject: Rename dir ExcelDNA -> AddIn --- Source/AddIn/Functions.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Source/AddIn/Functions.cs (limited to 'Source/AddIn/Functions.cs') diff --git a/Source/AddIn/Functions.cs b/Source/AddIn/Functions.cs new file mode 100644 index 0000000..6d94e24 --- /dev/null +++ b/Source/AddIn/Functions.cs @@ -0,0 +1,19 @@ +using ExcelDna.Integration; + +namespace RehauSku.Assist +{ + public class Functions + { + [ExcelFunction] + public static object RAUNAME(string request) + => SkuAssist.GetProduct(request, ProductField.Name); + + [ExcelFunction] + public static object RAUSKU(string request) + => SkuAssist.GetProduct(request, ProductField.Id); + + [ExcelFunction] + public static object RAUPRICE(string request) + => SkuAssist.GetProduct(request, ProductField.Price); + } +} \ No newline at end of file -- cgit v1.2.3 From dc1fc8b221e9324fe0f82c4ea4a32d87d282bd25 Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Wed, 8 Dec 2021 14:45:14 +0300 Subject: refactoring namespaces --- Source/AddIn/Functions.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Source/AddIn/Functions.cs') diff --git a/Source/AddIn/Functions.cs b/Source/AddIn/Functions.cs index 6d94e24..c6e9da4 100644 --- a/Source/AddIn/Functions.cs +++ b/Source/AddIn/Functions.cs @@ -1,6 +1,7 @@ using ExcelDna.Integration; +using RehauSku.Assistant; -namespace RehauSku.Assist +namespace RehauSku { public class Functions { -- cgit v1.2.3 From e175a634cefc6e8c0ecd49514a89b1d4f30ce33b Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Mon, 13 Dec 2021 20:39:41 +0300 Subject: Refactoring. ExcelDNA.IntelliSense library add. Add description to Excel functions. --- Source/AddIn/Functions.cs | 54 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 45 insertions(+), 9 deletions(-) (limited to 'Source/AddIn/Functions.cs') diff --git a/Source/AddIn/Functions.cs b/Source/AddIn/Functions.cs index c6e9da4..2ae22e4 100644 --- a/Source/AddIn/Functions.cs +++ b/Source/AddIn/Functions.cs @@ -5,16 +5,52 @@ namespace RehauSku { public class Functions { - [ExcelFunction] - public static object RAUNAME(string request) - => SkuAssist.GetProduct(request, ProductField.Name); + [ExcelFunction(Description = "Получение названия первого продукта по запросу в интернет-магазин REHAU")] + public static object RAUNAME([ExcelArgument(Name = "Запрос", Description = "Запрос в свободной форме или ячейка с запросом")] string request) + => MakeRequest(request, ProductField.Name); - [ExcelFunction] - public static object RAUSKU(string request) - => SkuAssist.GetProduct(request, ProductField.Id); + [ExcelFunction(Description = "Получение артикула первого продукта по запросу в интернет-магазин REHAU")] + public static object RAUSKU([ExcelArgument(Name = "Запрос", Description = "Запрос в свободной форме или ячейка с запросом")] string request) + => MakeRequest(request, ProductField.Id); - [ExcelFunction] - public static object RAUPRICE(string request) - => SkuAssist.GetProduct(request, ProductField.Price); + [ExcelFunction(Description = "Получение цены первого продукта по запросу в интернет-магазин REHAU")] + public static object RAUPRICE([ExcelArgument(Name = "Запрос", Description = "Запрос в свободной форме или ячейка с запросом")] string request) + => MakeRequest(request, ProductField.Price); + + private static object MakeRequest(string request, ProductField field) + { + object result; + + if (request.IsCached()) + result = request.GetFromCache(); + + else + { + result = ExcelAsyncUtil.Run("Request", request, delegate + { + return request.RequestAndCache().GetAwaiter().GetResult(); + }); + } + + if (result == null) + return "Не найдено :("; + + if (result.Equals(ExcelError.ExcelErrorNA)) + return "Загрузка..."; + + IProduct product = result as IProduct; + + switch (field) + { + case ProductField.Name: + return product.Name; + case ProductField.Id: + return product.Id; + case ProductField.Price: + return double.Parse(product.Price, System.Globalization.CultureInfo.InvariantCulture); + default: + return null; + } + } } } \ No newline at end of file -- cgit v1.2.3 From f97d344f39c46b5e2f883765e8859e78007a11b0 Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Wed, 22 Dec 2021 08:26:54 +0300 Subject: Add Registry Util --- Source/AddIn/Functions.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'Source/AddIn/Functions.cs') diff --git a/Source/AddIn/Functions.cs b/Source/AddIn/Functions.cs index 2ae22e4..618d17d 100644 --- a/Source/AddIn/Functions.cs +++ b/Source/AddIn/Functions.cs @@ -5,16 +5,16 @@ namespace RehauSku { public class Functions { - [ExcelFunction(Description = "Получение названия первого продукта по запросу в интернет-магазин REHAU")] - public static object RAUNAME([ExcelArgument(Name = "Запрос", Description = "Запрос в свободной форме или ячейка с запросом")] string request) + [ExcelFunction(description: "Получение названия первого продукта в поиске")] + public static object RAUNAME([ExcelArgument(Name = "\"Запрос\"", Description = "в свободной форме или ячейка с запросом")] string request) => MakeRequest(request, ProductField.Name); - [ExcelFunction(Description = "Получение артикула первого продукта по запросу в интернет-магазин REHAU")] - public static object RAUSKU([ExcelArgument(Name = "Запрос", Description = "Запрос в свободной форме или ячейка с запросом")] string request) + [ExcelFunction(Description = "Получение артикула первого продукта в поиске")] + public static object RAUSKU([ExcelArgument(Name = "\"Запрос\"", Description = "в свободной форме или ячейка с запросом")] string request) => MakeRequest(request, ProductField.Id); - [ExcelFunction(Description = "Получение цены первого продукта по запросу в интернет-магазин REHAU")] - public static object RAUPRICE([ExcelArgument(Name = "Запрос", Description = "Запрос в свободной форме или ячейка с запросом")] string request) + [ExcelFunction(Description = "Получение цены первого продукта в поиске")] + public static object RAUPRICE([ExcelArgument(Name = "\"Запрос\"", Description = "в свободной форме или ячейка с запросом")] string request) => MakeRequest(request, ProductField.Price); private static object MakeRequest(string request, ProductField field) -- cgit v1.2.3