diff --git a/RhSolutions.AddIn/AddIn/RhSolutionsFunction.cs b/RhSolutions.AddIn/AddIn/RhSolutionsFunction.cs index d7631f3..e2bfc50 100644 --- a/RhSolutions.AddIn/AddIn/RhSolutionsFunction.cs +++ b/RhSolutions.AddIn/AddIn/RhSolutionsFunction.cs @@ -52,4 +52,90 @@ public class RhSolutionsFunction } } } + [ExcelFunction] + public static object РЕХАУ(string line) => RHSOLUTIONS(line); + [ExcelFunction] + public static object РЕХАУАРТИКУЛ(string line) + { + if (ProductSku.TryParse(line, out var skus)) + { + return skus.First().Id; + } + else + { + return ExcelError.ExcelErrorNA; + } + } + [ExcelFunction] + public static object РЕХАУИМЯ(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] + public static object РЕХАУЦЕНА(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 string.Format("{0:N2} €", firstProduct.Price * 1.2m); + } + } + } + } } \ No newline at end of file diff --git a/RhSolutions.AddIn/Properties/AssemblyInfo.cs b/RhSolutions.AddIn/Properties/AssemblyInfo.cs index 290afaa..af3a71b 100644 --- a/RhSolutions.AddIn/Properties/AssemblyInfo.cs +++ b/RhSolutions.AddIn/Properties/AssemblyInfo.cs @@ -31,5 +31,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.6.1.5")] -[assembly: AssemblyFileVersion("1.6.1.5")] +[assembly: AssemblyVersion("1.6.2.0")] +[assembly: AssemblyFileVersion("1.6.2.0")]