From 2290f1b3403640025cbf2522f83f53b5913470c9 Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Thu, 11 Nov 2021 21:13:21 +0300 Subject: =?UTF-8?q?=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=B0=D1=81=D0=B8=D0=BD=D1=85=D1=80=D0=BE=D0=BD=D0=BD?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B0=20?= =?UTF-8?q?=D1=84=D0=BE=D1=80=D0=BC=D1=83=D0=BB=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SkuAssist.cs | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) (limited to 'SkuAssist.cs') diff --git a/SkuAssist.cs b/SkuAssist.cs index b873104..1c0be3b 100644 --- a/SkuAssist.cs +++ b/SkuAssist.cs @@ -18,38 +18,33 @@ namespace Rehau.Sku.Assist } } - public static string GetSku(string request) + public async static Task GetDocumentAsync(string request) { string url = "https://shop-rehau.ru/catalogsearch/result/?q=" + request; - HttpResponseMessage response = GetResponse(url).Result; - var document = GetDocument(response).Result; - var name = document - .All - .Where(e => e.ClassName == "product-item__desc-top") - .Select(e => new { sku = e.Children[0].TextContent, name = e.Children[1].TextContent.Trim(new[] { '\n', ' ' }) }) - .Where(t => !t.sku.Any(c => char.IsLetter(c))) - .FirstOrDefault(); - - return name == null ? "Не найдено" : $"{name.name} ({name.sku})"; - } - - private static async Task GetResponse(string url) - { ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; HttpResponseMessage response = await _httpClient.GetAsync(url); response.EnsureSuccessStatusCode(); - return response; - } - private static async Task GetDocument(HttpResponseMessage response) - { + IConfiguration config = Configuration.Default; IBrowsingContext context = BrowsingContext.New(config); string source = await response.Content.ReadAsStringAsync(); return await context.OpenAsync(req => req.Content(source)); } + + public static string GetResultFromDocument(AngleSharp.Dom.IDocument document) + { + var result = document + .All + .Where(e => e.ClassName == "product-item__desc-top") + .Select(e => new { sku = e.Children[0].TextContent, title = e.Children[1].TextContent.Trim(new[] { '\n', ' ' }) }) + .Where(t => !t.sku.Any(c => char.IsLetter(c))) + .FirstOrDefault(); + + return result == null ? "Не найдено" : $"{result.title} ({result.sku})"; + } } } -- cgit v1.2.3 From f5234e956c79d3019e975a4d3550574c92f769e7 Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Sun, 14 Nov 2021 12:27:49 +0300 Subject: Edit ASync method. Delete unnecessary classes --- SkuAssist.cs | 51 --------------------------------------------------- 1 file changed, 51 deletions(-) delete mode 100644 SkuAssist.cs (limited to 'SkuAssist.cs') diff --git a/SkuAssist.cs b/SkuAssist.cs deleted file mode 100644 index 1c0be3b..0000000 --- a/SkuAssist.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System.Net.Http; -using System.Threading.Tasks; -using AngleSharp; -using System.Linq; -using System.Net; - -namespace Rehau.Sku.Assist -{ - static class SkuAssist - { - static private HttpClient _httpClient; - - public static void EnsureHttpInitialized() - { - if (_httpClient == null) - { - _httpClient = new HttpClient(); - } - } - - public async static Task GetDocumentAsync(string request) - { - string url = "https://shop-rehau.ru/catalogsearch/result/?q=" + request; - - ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; - HttpResponseMessage response = await _httpClient.GetAsync(url); - response.EnsureSuccessStatusCode(); - - - IConfiguration config = Configuration.Default; - IBrowsingContext context = BrowsingContext.New(config); - - string source = await response.Content.ReadAsStringAsync(); - return await context.OpenAsync(req => req.Content(source)); - } - - public static string GetResultFromDocument(AngleSharp.Dom.IDocument document) - { - var result = document - .All - .Where(e => e.ClassName == "product-item__desc-top") - .Select(e => new { sku = e.Children[0].TextContent, title = e.Children[1].TextContent.Trim(new[] { '\n', ' ' }) }) - .Where(t => !t.sku.Any(c => char.IsLetter(c))) - .FirstOrDefault(); - - return result == null ? "Не найдено" : $"{result.title} ({result.sku})"; - } - } -} - - -- cgit v1.2.3