using ExcelDna.Integration; using RhSolutions.Models; using RhSolutions.Services; using System.Linq; namespace RhSolutions.AddIn { public class Functions { [ExcelFunction(Description = "Запрос в удаленную базу данных")] public static object RHSOLUTIONS([ExcelArgument(Name = "Запрос")] string line) { object result; result = ExcelAsyncUtil.Run("Database request", line, delegate { return RhDatabaseClient.GetProduct(line).GetAwaiter().GetResult(); }); string parsedSku = Sku.TryParse(line, out var skus) ? skus.First().ToString() : string.Empty; if (result == null) { if (string.IsNullOrEmpty(parsedSku)) { return ExcelError.ExcelErrorNA; } else { return skus.First().ToString(); } } if (result.Equals(ExcelError.ExcelErrorNA)) { if (string.IsNullOrEmpty(parsedSku)) { return "Загрузка..."; } else { return skus.First().ToString(); } } return result; } [ExcelFunction] public static void ResetStatusBar() { RhSolutionsAddIn.Excel.StatusBar = false; } } }