From bfada8d605619e80702391c7f8fb326f021df18b Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Tue, 20 Dec 2022 12:03:05 +0300 Subject: [PATCH] RhDatabase Client extract class --- src/AddIn/Functions.cs | 53 ----------------------------------- src/AddIn/RhDatabaseClient.cs | 45 +++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 53 deletions(-) create mode 100644 src/AddIn/RhDatabaseClient.cs diff --git a/src/AddIn/Functions.cs b/src/AddIn/Functions.cs index 804e1c9..5bcfd45 100644 --- a/src/AddIn/Functions.cs +++ b/src/AddIn/Functions.cs @@ -1,27 +1,10 @@ using ExcelDna.Integration; -using Newtonsoft.Json; using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Net.Http; -using System.Threading.Tasks; namespace RhSolutions { public class Functions { - [ExcelFunction(Description = "Получение корректного артикула из строки")] - public static object GETRAUSKU([ExcelArgument(Name = "\"Строка\"", Description = "строка, содержащая актикул")] string line) - { - if (RauSku.TryParse(line, out RauSku rausku)) - { - return rausku.ToString(); - } - - else return ExcelError.ExcelErrorNA; - } - [ExcelFunction(Description = "Запрос в удаленную базу данных")] public static object RHSOLUTIONS([ExcelArgument(Name = "Запрос")] string line) { @@ -45,40 +28,4 @@ namespace RhSolutions return result; } } - - public static class RhDatabaseClient - { - private static HttpClient httpClient = AddIn.httpClient; - - public static async Task GetProduct(string line) - { - string request = @"https://rh.cebotari.ru/api/search?query=" + line; - - ServicePointManager.SecurityProtocol = - SecurityProtocolType.Tls12 | - SecurityProtocolType.Tls11 | - SecurityProtocolType.Tls; - - string response = await httpClient.GetStringAsync(request); - - var products = JsonConvert.DeserializeObject>(response); - - var product = products.FirstOrDefault(); - - if (product == null) - { - return null; - } - else - { - return $"{product.productSku} {product.name}"; - } - } - - private class DbProduct - { - public string productSku { get; set; } - public string name { get; set; } - } - } } \ No newline at end of file diff --git a/src/AddIn/RhDatabaseClient.cs b/src/AddIn/RhDatabaseClient.cs new file mode 100644 index 0000000..3a2de5c --- /dev/null +++ b/src/AddIn/RhDatabaseClient.cs @@ -0,0 +1,45 @@ +using Newtonsoft.Json; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; + +namespace RhSolutions +{ + public static class RhDatabaseClient + { + private static HttpClient httpClient = AddIn.httpClient; + + public static async Task GetProduct(string line) + { + string request = @"https://rh.cebotari.ru/api/search?query=" + line; + + ServicePointManager.SecurityProtocol = + SecurityProtocolType.Tls12 | + SecurityProtocolType.Tls11 | + SecurityProtocolType.Tls; + + string response = await httpClient.GetStringAsync(request); + + var products = JsonConvert.DeserializeObject>(response); + + var product = products.FirstOrDefault(); + + if (product == null) + { + return null; + } + else + { + return $"{product.productSku} {product.name}"; + } + } + + private class DbProduct + { + public string productSku { get; set; } + public string name { get; set; } + } + } +} \ No newline at end of file