From bfab7eb02bc19a1ab0c53b786139986f10f6275b Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Thu, 8 Jun 2023 06:44:11 +0300 Subject: Edit caller function names --- RhSolutions.AddIn/AddIn/RhSolutionsFunction.cs | 218 ------------------------ RhSolutions.AddIn/AddIn/RhSolutionsFunctions.cs | 218 ++++++++++++++++++++++++ 2 files changed, 218 insertions(+), 218 deletions(-) delete mode 100644 RhSolutions.AddIn/AddIn/RhSolutionsFunction.cs create mode 100644 RhSolutions.AddIn/AddIn/RhSolutionsFunctions.cs diff --git a/RhSolutions.AddIn/AddIn/RhSolutionsFunction.cs b/RhSolutions.AddIn/AddIn/RhSolutionsFunction.cs deleted file mode 100644 index b46a930..0000000 --- a/RhSolutions.AddIn/AddIn/RhSolutionsFunction.cs +++ /dev/null @@ -1,218 +0,0 @@ -#if !NET472 -using System.Runtime.Versioning; -#endif - -namespace RhSolutions.AddIn; - -#if !NET472 -[SupportedOSPlatform("windows")] -#endif -public class RhSolutionsFunction -{ - [ExcelFunction(Description = "Поиск артикула в базе данных")] - public static object RHSOLUTIONS([ExcelArgument(Name = "СТРОКА", Description = "Ячейка с артикулом РЕХАУ или поисковый запрос в свободной форме")] string line) - { - IDatabaseClient databaseClient = RhSolutionsAddIn.ServiceProvider.GetService(); - - ProductSku.TryParse(line, out var skus); - - if (ExcelAsyncUtil.Run("Database request", line, delegate - { - return databaseClient.GetProducts(line) - .GetAwaiter() - .GetResult(); - }) is not IEnumerable requestResult) - { - if (skus.Any()) - { - return $"{skus.First()} ..."; - } - else - { - return "Загрузка..."; - } - } - - else - { - if (!requestResult.Any() && !skus.Any()) - { - return ExcelError.ExcelErrorNA; - } - else if (!requestResult.Any()) - { - return $"{skus.First()}"; - } - else - { - var firstProduct = requestResult.First(); - return $"{firstProduct.ProductSku} {firstProduct.Name}"; - } - } - } - - [ExcelFunction(Description = "Поиск артикула в базе данных")] - public static object РЕХАУ([ExcelArgument(Name = "СТРОКА", Description = "Ячейка с артикулом РЕХАУ или поисковый запрос в свободной форме")] string line) - => RHSOLUTIONS(line); - - [ExcelFunction(Description = "Выделить артикул РЕХАУ из ячейки")] - public static object РЕХАУАРТИКУЛ([ExcelArgument(Name = "СТРОКА", Description = "Ячейка содержащая артикул РЕХАУ")] string line) - { - if (ProductSku.TryParse(line, out var skus)) - { - return skus.First().Id; - } - else - { - return ExcelError.ExcelErrorNA; - } - } - - [ExcelFunction(Description = "Поиск названия по артикулу РЕХАУ")] - public static object РЕХАУИМЯ([ExcelArgument(Name = "АРТИКУЛ", Description = "Ячейка содержащая артикул РЕХАУ")] string line) - { - if (!ProductSku.TryParse(line, out var skus)) - { - return ExcelError.ExcelErrorNA; - } - else - { - var article = skus.First().Id; - IDatabaseClient databaseClient = RhSolutionsAddIn.ServiceProvider.GetService(); - - if (ExcelAsyncUtil.Run("Database request", line, delegate - { - return databaseClient.GetProducts(article) - .GetAwaiter() - .GetResult(); - }) is not IEnumerable requestResult) - { - return "Загрузка..."; - } - else - { - if (!requestResult.Any()) - { - return ExcelError.ExcelErrorNA; - } - else - { - var firstProduct = requestResult.First(); - return firstProduct.Name; - } - } - } - } - - [ExcelFunction(Description = "Поиск цены артикула РЕХАУ в евро")] - public static object РЕХАУЦЕНА([ExcelArgument(Name = "АРТИКУЛ", Description = "Ячейка содержащая артикул РЕХАУ")] string line) - { - if (!ProductSku.TryParse(line, out var skus)) - { - return ExcelError.ExcelErrorNA; - } - else - { - var article = skus.First().Id; - IDatabaseClient databaseClient = RhSolutionsAddIn.ServiceProvider.GetService(); - - if (ExcelAsyncUtil.Run("Database request", line, delegate - { - return databaseClient.GetProducts(article) - .GetAwaiter() - .GetResult(); - }) is not IEnumerable requestResult) - { - return "Загрузка..."; - } - else - { - if (!requestResult.Any()) - { - return ExcelError.ExcelErrorNA; - } - else - { - var firstProduct = requestResult.First(); - return Math.Round(firstProduct.Price * 1.2m, 2); - } - } - } - } - - [ExcelFunction(Description = "Поиск цены артикула РЕХАУ в рублях")] - public static object РЕХАУЦЕНАРУБ([ExcelArgument(Name = "АРТИКУЛ", Description = "Ячейка содержащая артикул РЕХАУ")] string line, - [ExcelArgument(Name = "ДАТА", Description = "Дата в формате Excel (необязательно)")] double dateField) - { - if (!ProductSku.TryParse(line, out var skus)) - { - return ExcelError.ExcelErrorNA; - } - else - { - var article = skus.First().Id; - IDatabaseClient databaseClient = RhSolutionsAddIn.ServiceProvider.GetService(); - ICurrencyClient currencyClient = RhSolutionsAddIn.ServiceProvider.GetRequiredService(); - - if (ExcelAsyncUtil.Run("Database request", line, delegate - { - var product = databaseClient.GetProducts(article) - .GetAwaiter() - .GetResult() - .FirstOrDefault(); - - DateTime date = dateField == 0 ? DateTime.Today : DateTime.FromOADate(dateField); - var exchangeRate = currencyClient.GetCurrencyCourse(date) - .GetAwaiter() - .GetResult(); - - return product == null ? -1m : - product.Price * exchangeRate * 1.2m; - }) is not decimal requestResult) - { - return "Загрузка..."; - } - else - { - if (requestResult < 0) - { - return ExcelError.ExcelErrorNA; - } - else - { - return Math.Round(requestResult, 2); - } - } - } - } - - [ExcelFunction(Description = "Получить курс евро по ЦБ")] - public static object КУРСЕВРО([ExcelArgument(Name = "ДАТА", Description = "Дата в формате Excel (необязательно)")] double dateField) - { - ICurrencyClient currencyClient = RhSolutionsAddIn.ServiceProvider.GetRequiredService(); - - if (ExcelAsyncUtil.Run("Database request", dateField, delegate - { - DateTime date = dateField == 0 ? DateTime.Today : DateTime.FromOADate(dateField); - var exchangeRate = currencyClient.GetCurrencyCourse(date) - .GetAwaiter() - .GetResult(); - - return exchangeRate ?? -1m; - }) is not decimal requestResult) - { - return "Загрузка..."; - } - else - { - if (requestResult < 0) - { - return ExcelError.ExcelErrorNA; - } - else - { - return Math.Round(requestResult, 2); - } - } - } -} \ No newline at end of file diff --git a/RhSolutions.AddIn/AddIn/RhSolutionsFunctions.cs b/RhSolutions.AddIn/AddIn/RhSolutionsFunctions.cs new file mode 100644 index 0000000..4341ddf --- /dev/null +++ b/RhSolutions.AddIn/AddIn/RhSolutionsFunctions.cs @@ -0,0 +1,218 @@ +#if !NET472 +using System.Runtime.Versioning; +#endif + +namespace RhSolutions.AddIn; + +#if !NET472 +[SupportedOSPlatform("windows")] +#endif +public class RhSolutionsFunctions +{ + [ExcelFunction(Description = "Поиск артикула в базе данных")] + public static object RHSOLUTIONS([ExcelArgument(Name = "СТРОКА", Description = "Ячейка с артикулом РЕХАУ или поисковый запрос в свободной форме")] string line) + { + IDatabaseClient databaseClient = RhSolutionsAddIn.ServiceProvider.GetService(); + + ProductSku.TryParse(line, out var skus); + + if (ExcelAsyncUtil.Run(nameof(RHSOLUTIONS), line, delegate + { + return databaseClient.GetProducts(line) + .GetAwaiter() + .GetResult(); + }) is not IEnumerable requestResult) + { + if (skus.Any()) + { + return $"{skus.First()} ..."; + } + else + { + return "Загрузка..."; + } + } + + else + { + if (!requestResult.Any() && !skus.Any()) + { + return ExcelError.ExcelErrorNA; + } + else if (!requestResult.Any()) + { + return $"{skus.First()}"; + } + else + { + var firstProduct = requestResult.First(); + return $"{firstProduct.ProductSku} {firstProduct.Name}"; + } + } + } + + [ExcelFunction(Description = "Поиск артикула в базе данных")] + public static object РЕХАУ([ExcelArgument(Name = "СТРОКА", Description = "Ячейка с артикулом РЕХАУ или поисковый запрос в свободной форме")] string line) + => RHSOLUTIONS(line); + + [ExcelFunction(Description = "Выделить артикул РЕХАУ из ячейки")] + public static object РЕХАУАРТИКУЛ([ExcelArgument(Name = "СТРОКА", Description = "Ячейка содержащая артикул РЕХАУ")] string line) + { + if (ProductSku.TryParse(line, out var skus)) + { + return skus.First().Id; + } + else + { + return ExcelError.ExcelErrorNA; + } + } + + [ExcelFunction(Description = "Поиск названия по артикулу РЕХАУ")] + public static object РЕХАУИМЯ([ExcelArgument(Name = "АРТИКУЛ", Description = "Ячейка содержащая артикул РЕХАУ")] string line) + { + if (!ProductSku.TryParse(line, out var skus)) + { + return ExcelError.ExcelErrorNA; + } + else + { + var article = skus.First().Id; + IDatabaseClient databaseClient = RhSolutionsAddIn.ServiceProvider.GetService(); + + if (ExcelAsyncUtil.Run(nameof(РЕХАУИМЯ), line, delegate + { + return databaseClient.GetProducts(article) + .GetAwaiter() + .GetResult(); + }) is not IEnumerable requestResult) + { + return "Загрузка..."; + } + else + { + if (!requestResult.Any()) + { + return ExcelError.ExcelErrorNA; + } + else + { + var firstProduct = requestResult.First(); + return firstProduct.Name; + } + } + } + } + + [ExcelFunction(Description = "Поиск цены артикула РЕХАУ в евро")] + public static object РЕХАУЦЕНА([ExcelArgument(Name = "АРТИКУЛ", Description = "Ячейка содержащая артикул РЕХАУ")] string line) + { + if (!ProductSku.TryParse(line, out var skus)) + { + return ExcelError.ExcelErrorNA; + } + else + { + var article = skus.First().Id; + IDatabaseClient databaseClient = RhSolutionsAddIn.ServiceProvider.GetService(); + + if (ExcelAsyncUtil.Run(nameof(РЕХАУЦЕНА), line, delegate + { + return databaseClient.GetProducts(article) + .GetAwaiter() + .GetResult(); + }) is not IEnumerable requestResult) + { + return "Загрузка..."; + } + else + { + if (!requestResult.Any()) + { + return ExcelError.ExcelErrorNA; + } + else + { + var firstProduct = requestResult.First(); + return Math.Round(firstProduct.Price * 1.2m, 2); + } + } + } + } + + [ExcelFunction(Description = "Поиск цены артикула РЕХАУ в рублях")] + public static object РЕХАУЦЕНАРУБ([ExcelArgument(Name = "АРТИКУЛ", Description = "Ячейка содержащая артикул РЕХАУ")] string line, + [ExcelArgument(Name = "ДАТА", Description = "Дата в формате Excel (необязательно)")] double dateField) + { + if (!ProductSku.TryParse(line, out var skus)) + { + return ExcelError.ExcelErrorNA; + } + else + { + var article = skus.First().Id; + IDatabaseClient databaseClient = RhSolutionsAddIn.ServiceProvider.GetService(); + ICurrencyClient currencyClient = RhSolutionsAddIn.ServiceProvider.GetRequiredService(); + + if (ExcelAsyncUtil.Run(nameof(РЕХАУЦЕНАРУБ), line, delegate + { + var product = databaseClient.GetProducts(article) + .GetAwaiter() + .GetResult() + .FirstOrDefault(); + + DateTime date = dateField == 0 ? DateTime.Today : DateTime.FromOADate(dateField); + var exchangeRate = currencyClient.GetCurrencyCourse(date) + .GetAwaiter() + .GetResult(); + + return product == null ? -1m : + product.Price * exchangeRate * 1.2m; + }) is not decimal requestResult) + { + return "Загрузка..."; + } + else + { + if (requestResult < 0) + { + return ExcelError.ExcelErrorNA; + } + else + { + return Math.Round(requestResult, 2); + } + } + } + } + + [ExcelFunction(Description = "Получить курс евро по ЦБ")] + public static object КУРСЕВРО([ExcelArgument(Name = "ДАТА", Description = "Дата в формате Excel (необязательно)")] double dateField) + { + ICurrencyClient currencyClient = RhSolutionsAddIn.ServiceProvider.GetRequiredService(); + + if (ExcelAsyncUtil.Run(nameof(КУРСЕВРО), dateField, delegate + { + DateTime date = dateField == 0 ? DateTime.Today : DateTime.FromOADate(dateField); + var exchangeRate = currencyClient.GetCurrencyCourse(date) + .GetAwaiter() + .GetResult(); + + return exchangeRate ?? -1m; + }) is not decimal requestResult) + { + return "Загрузка..."; + } + else + { + if (requestResult < 0) + { + return ExcelError.ExcelErrorNA; + } + else + { + return Math.Round(requestResult, 2); + } + } + } +} \ No newline at end of file -- cgit v1.2.3