aboutsummaryrefslogtreecommitdiff
path: root/Source/AddIn
diff options
context:
space:
mode:
Diffstat (limited to 'Source/AddIn')
-rw-r--r--Source/AddIn/AddIn.cs47
-rw-r--r--Source/AddIn/Functions.cs56
-rw-r--r--Source/AddIn/MemoryCacheUtil.cs37
-rw-r--r--Source/AddIn/RegistryUtil.cs76
4 files changed, 0 insertions, 216 deletions
diff --git a/Source/AddIn/AddIn.cs b/Source/AddIn/AddIn.cs
deleted file mode 100644
index 67cdcc8..0000000
--- a/Source/AddIn/AddIn.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-using ExcelDna.Integration;
-using ExcelDna.IntelliSense;
-using ExcelDna.Registration;
-using System.Net.Http;
-using System.Runtime.Caching;
-
-
-namespace RehauSku
-{
- public enum ResponseOrder
- {
- Default,
- Relevance,
- Name,
- Price,
- Series
- }
-
- public class AddIn : IExcelAddIn
- {
- public static HttpClient httpClient;
- public static MemoryCache memoryCache;
-
- public void AutoOpen()
- {
- httpClient = new HttpClient();
- memoryCache = new MemoryCache("RehauSku");
- RegisterFunctions();
- IntelliSenseServer.Install();
- RegistryUtil.Initialize();
- }
-
- public void AutoClose()
- {
- IntelliSenseServer.Uninstall();
- RegistryUtil.Uninitialize();
- memoryCache.Dispose();
- }
-
- void RegisterFunctions()
- {
- ExcelRegistration.GetExcelFunctions()
- .ProcessAsyncRegistrations(nativeAsyncIfAvailable: false)
- .RegisterFunctions();
- }
- }
-}
diff --git a/Source/AddIn/Functions.cs b/Source/AddIn/Functions.cs
deleted file mode 100644
index 618d17d..0000000
--- a/Source/AddIn/Functions.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using ExcelDna.Integration;
-using RehauSku.Assistant;
-
-namespace RehauSku
-{
- public class Functions
- {
- [ExcelFunction(description: "Получение названия первого продукта в поиске")]
- public static object RAUNAME([ExcelArgument(Name = "\"Запрос\"", Description = "в свободной форме или ячейка с запросом")] string request)
- => MakeRequest(request, ProductField.Name);
-
- [ExcelFunction(Description = "Получение артикула первого продукта в поиске")]
- public static object RAUSKU([ExcelArgument(Name = "\"Запрос\"", Description = "в свободной форме или ячейка с запросом")] string request)
- => MakeRequest(request, ProductField.Id);
-
- [ExcelFunction(Description = "Получение цены первого продукта в поиске")]
- 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
diff --git a/Source/AddIn/MemoryCacheUtil.cs b/Source/AddIn/MemoryCacheUtil.cs
deleted file mode 100644
index 1d42e14..0000000
--- a/Source/AddIn/MemoryCacheUtil.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-using System;
-using System.Runtime.Caching;
-using System.Threading.Tasks;
-using RehauSku.Assistant;
-
-namespace RehauSku
-{
- static class MemoryCacheUtil
- {
- public static bool IsCached(this string request)
- {
- return AddIn.memoryCache.Contains(request);
- }
-
- public static IProduct GetFromCache(this string request)
- {
- return AddIn.memoryCache[request] as IProduct;
- }
-
- public static async Task<IProduct> RequestAndCache(this string request)
- {
- IProduct product = await SkuAssist.GetProductAsync(request);
-
- if (product == null)
- return null;
-
- AddIn.memoryCache.Add(request, product, DateTime.Now.AddMinutes(10));
- return product;
- }
-
- public static void ClearCache()
- {
- AddIn.memoryCache.Dispose();
- AddIn.memoryCache = new MemoryCache("RehauSku");
- }
- }
-} \ No newline at end of file
diff --git a/Source/AddIn/RegistryUtil.cs b/Source/AddIn/RegistryUtil.cs
deleted file mode 100644
index 40d0ec2..0000000
--- a/Source/AddIn/RegistryUtil.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-using Microsoft.Win32;
-using System.IO;
-using RehauSku.Forms;
-using System.Windows.Forms;
-
-namespace RehauSku
-{
- static class RegistryUtil
- {
- private static string _priceListPath;
- private static int? _storeResponseOrder;
- private static RegistryKey _RootKey { get; set; }
-
- public static void Initialize()
- {
- _RootKey = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\REHAU\SkuAssist");
- _priceListPath = _RootKey.GetValue("PriceListPath") as string;
- _storeResponseOrder = _RootKey.GetValue("StoreResponseOrder") as int?;
- }
-
- public static void Uninitialize()
- {
- _RootKey.Close();
-
- }
-
- public static bool IsPriceListPathEmpty()
- {
- return string.IsNullOrEmpty(_priceListPath);
- }
-
- public static string PriceListPath
- {
- get
- {
- if (IsPriceListPathEmpty() || !File.Exists(_priceListPath))
- {
- MessageBox.Show("Прайс-лист отсутствует или неверный файл прайс-листа", "Укажите файл прайс-листа", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- string fileName = Dialog.GetFilePath();
- _priceListPath = fileName;
- _RootKey.SetValue("PriceListPath", fileName);
- return _priceListPath;
- }
-
- else
- {
- return _priceListPath;
- }
- }
-
- set
- {
- _priceListPath = value;
- _RootKey.SetValue("PriceListPath", value);
- }
- }
-
- public static ResponseOrder StoreResponseOrder
- {
- get
- {
- if (_storeResponseOrder == null)
- {
- _RootKey.SetValue("StoreResponseOrder", (int)ResponseOrder.Default);
- _storeResponseOrder = (int)ResponseOrder.Default;
- return (ResponseOrder)_storeResponseOrder.Value;
- }
-
- else
- {
- return (ResponseOrder)_storeResponseOrder.Value;
- }
- }
- }
- }
-}