diff options
author | Sergey Chebotar <s.chebotar@gmail.com> | 2021-12-03 14:15:16 +0300 |
---|---|---|
committer | Sergey Chebotar <s.chebotar@gmail.com> | 2021-12-03 14:15:16 +0300 |
commit | c748be35c4bc35dc431066fb390945ee0c986ea3 (patch) | |
tree | 58485e3e84f5a880d4115764a91dc9f9bca3370f /Source/ExcelDNA/Functions.cs | |
parent | 2f7c5688ddd0d4145b91f5660f8f49df70081b28 (diff) |
Add RauSku Function. Some refactoring.
Diffstat (limited to 'Source/ExcelDNA/Functions.cs')
-rw-r--r-- | Source/ExcelDNA/Functions.cs | 56 |
1 files changed, 42 insertions, 14 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<IProduct> product = Task.Run(() => SkuAssist.GetProduct(request)); - return product.Result; + Task<IProduct> p = Task.Run(() => SkuAssist.GetProduct(request)); + return p.Result; }); - if (Equals(result, ExcelError.ExcelErrorNA)) - { + if (result == null) + return "Не найдено"; + + if (result.Equals(ExcelError.ExcelErrorNA)) return "Загрузка..."; - } - else if (result == null) - { + 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<IProduct> p = Task.Run(() => SkuAssist.GetProduct(request)); + return p.Result; + }); + + 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.Sku, product, System.DateTime.Now.AddMinutes(10)); + return product.Sku; } } } |