aboutsummaryrefslogtreecommitdiff
path: root/src/AddIn/Functions.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/AddIn/Functions.cs')
-rw-r--r--src/AddIn/Functions.cs48
1 files changed, 5 insertions, 43 deletions
diff --git a/src/AddIn/Functions.cs b/src/AddIn/Functions.cs
index 618d17d..c202a3b 100644
--- a/src/AddIn/Functions.cs
+++ b/src/AddIn/Functions.cs
@@ -1,56 +1,18 @@
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)
+ [ExcelFunction(Description = "Получение корректного артикула из строки")]
+ public static object GETRAUSKU([ExcelArgument(Name = "\"Строка\"", Description = "строка, содержащая актикул")] string line)
{
- object result;
-
- if (request.IsCached())
- result = request.GetFromCache();
-
- else
+ if (RauSku.TryParse(line, out RauSku rausku))
{
- result = ExcelAsyncUtil.Run("Request", request, delegate
- {
- return request.RequestAndCache().GetAwaiter().GetResult();
- });
+ return rausku.ToString();
}
- 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;
- }
+ else return ExcelError.ExcelErrorNA;
}
}
} \ No newline at end of file