e175a634ce
Add description to Excel functions.
56 lines
2.4 KiB
C#
56 lines
2.4 KiB
C#
using ExcelDna.Integration;
|
||
using RehauSku.Assistant;
|
||
|
||
namespace RehauSku
|
||
{
|
||
public class Functions
|
||
{
|
||
[ExcelFunction(Description = "Получение названия первого продукта по запросу в интернет-магазин REHAU")]
|
||
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)
|
||
=> MakeRequest(request, ProductField.Id);
|
||
|
||
[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;
|
||
}
|
||
}
|
||
}
|
||
} |