diff options
author | Sergey Chebotar <s.chebotar@gmail.com> | 2021-11-29 17:12:56 +0300 |
---|---|---|
committer | Sergey Chebotar <s.chebotar@gmail.com> | 2021-11-29 17:12:56 +0300 |
commit | 2afcbbf08c21aa7368361269f24240147aa79a00 (patch) | |
tree | 9f6494fb2f70d086059619c0dce6316b338b69ca /src/Assistant/SkuAssist.cs | |
parent | d176a023f06d70cb577e64d1a917e77d677d2a2b (diff) |
Организация директорий проекта
Diffstat (limited to 'src/Assistant/SkuAssist.cs')
-rw-r--r-- | src/Assistant/SkuAssist.cs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/Assistant/SkuAssist.cs b/src/Assistant/SkuAssist.cs new file mode 100644 index 0000000..dc36dc0 --- /dev/null +++ b/src/Assistant/SkuAssist.cs @@ -0,0 +1,45 @@ +using AngleSharp; +using AngleSharp.Dom; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace Rehau.Sku.Assist +{ + static class SkuAssist + { + public async static Task<string> GetContent(string request, HttpClient httpClient) + { + string uri = "https://shop-rehau.ru/catalogsearch/result/?q=" + request._CleanRequest(); + ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; + + return await httpClient.GetStringAsync(uri); + } + + public async static Task<IDocument> GetDocument(Task<string> source) + { + IConfiguration config = Configuration.Default; + IBrowsingContext context = BrowsingContext.New(config); + + return await context.OpenAsync(req => req.Content(source.Result)); + } + + public static IProduct GetProductFromDocument(IDocument document) + { + return document + .All + .Where(e => e.ClassName == "product-item__desc-top") + .Select(e => new Product(e.Children[0].TextContent, e.Children[1].TextContent.Trim(new[] { '\n', ' ' }))) + .FirstOrDefault(); + } + + private static string _CleanRequest(this string input) + { + return input.Replace("+", " plus "); + } + } +} + + |