diff options
author | Serghei Cebotari <51533848+schebotar@users.noreply.github.com> | 2021-11-29 17:17:16 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-29 17:17:16 +0300 |
commit | f5799a28eaef3f3ea24ba56dc16970d6203b73fd (patch) | |
tree | 9532114d293af3b356630f34f0a57781a75e9939 /SkuAssist.cs | |
parent | 5fc6d09f63d843ce65eb4d9fb7cc35df2ea6cc1e (diff) | |
parent | f3b6bfcd3e13519f648c3975d19b8f1d48130059 (diff) |
Merge pull request #2 from schebotar/dev
bDev
Diffstat (limited to 'SkuAssist.cs')
-rw-r--r-- | SkuAssist.cs | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/SkuAssist.cs b/SkuAssist.cs deleted file mode 100644 index b873104..0000000 --- a/SkuAssist.cs +++ /dev/null @@ -1,56 +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 static string GetSku(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<HttpResponseMessage> 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<AngleSharp.Dom.IDocument> 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)); - } - } -} - - |