using ExcelAddIn.Services; using Microsoft.Extensions.DependencyInjection; namespace ExcelAddIn; public static class ExcelFunctions { [ExcelFunction] public static object ExchangeRate(double dateField) { ICurrencyClient currencyClient = MyAddIn.ServiceProvider.GetService(); DateTime date = dateField == 0 ? DateTime.Today : DateTime.FromOADate(dateField); if (ExcelAsyncUtil.Run(nameof(ExchangeRate), dateField, delegate { return currencyClient.GetExchangeRate(date) .GetAwaiter() .GetResult() ?? -1m; }) is not decimal requestResult) { return "Загрузка..."; } else if (requestResult < 0) { return ExcelError.ExcelErrorNA; } else { return Math.Round(requestResult, 2); } } }