From c748be35c4bc35dc431066fb390945ee0c986ea3 Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Fri, 3 Dec 2021 14:15:16 +0300 Subject: [PATCH] Add RauSku Function. Some refactoring. --- Source/ExcelDNA/Functions.cs | 60 ++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 16 deletions(-) diff --git a/Source/ExcelDNA/Functions.cs b/Source/ExcelDNA/Functions.cs index b348fc9..d45b6ee 100644 --- a/Source/ExcelDNA/Functions.cs +++ b/Source/ExcelDNA/Functions.cs @@ -10,32 +10,60 @@ namespace Rehau.Sku.Assist public static object RAUNAME(string request) { if (MemoryCache.Default.Contains(request)) - return MemoryCache.Default[request].ToString(); + { + IProduct product = MemoryCache.Default[request] as IProduct; + return product.Name; + } else { object result = ExcelAsyncUtil.Run("Rauname", new[] { request }, delegate { - Task product = Task.Run(() => SkuAssist.GetProduct(request)); - return product.Result; + Task p = Task.Run(() => SkuAssist.GetProduct(request)); + return p.Result; }); - if (Equals(result, ExcelError.ExcelErrorNA)) - { - return "Загрузка..."; - } - - else if (result == null) - { + if (result == null) return "Не найдено"; - } - else - { - MemoryCache.Default.Add(request, result, System.DateTime.Now.AddMinutes(10)); - return result.ToString(); - } + if (result.Equals(ExcelError.ExcelErrorNA)) + return "Загрузка..."; + + IProduct product = result as IProduct; + MemoryCache.Default.Add(request, product, System.DateTime.Now.AddMinutes(10)); + //MemoryCache.Default.Add(product.Name, product, System.DateTime.Now.AddMinutes(10)); + return product.Name; + } + } + + [ExcelFunction] + public static object RAUSKU(string request) + { + if (MemoryCache.Default.Contains(request)) + { + IProduct result = MemoryCache.Default[request] as IProduct; + return result.Sku; + } + else + { + object result = ExcelAsyncUtil.Run("RauSku", new[] { request }, + delegate + { + Task p = Task.Run(() => SkuAssist.GetProduct(request)); + return p.Result; + }); + + if (result == null) + return "Не найдено"; + + if (result.Equals(ExcelError.ExcelErrorNA)) + return "Загрузка..."; + + IProduct product = result as IProduct; + MemoryCache.Default.Add(request, product, System.DateTime.Now.AddMinutes(10)); + //MemoryCache.Default.Add(product.Sku, product, System.DateTime.Now.AddMinutes(10)); + return product.Sku; } } }