From 3eb118d6db672eb8e27f2b2478b0688141782654 Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Mon, 29 Nov 2021 15:50:24 +0300 Subject: Async/await ready solution init commit --- Assistant/SkuAssist.cs | 65 ++++++++++++++++++++++++++------------------------ 1 file changed, 34 insertions(+), 31 deletions(-) (limited to 'Assistant/SkuAssist.cs') diff --git a/Assistant/SkuAssist.cs b/Assistant/SkuAssist.cs index 9eb3328..d390a1d 100644 --- a/Assistant/SkuAssist.cs +++ b/Assistant/SkuAssist.cs @@ -1,38 +1,41 @@ -using AngleSharp; -using System.Linq; -using System.Net; -using System.Net.Http; -using System.Threading.Tasks; +//using System; +//using AngleSharp; +//using AngleSharp.Dom; +//using System.Linq; +//using System.Net; +//using System.Net.Http; +//using System.Threading.Tasks; -namespace Rehau.Sku.Assist -{ - static class SkuAssist - { - public async static Task GetDocumentAsync(string request, HttpClient httpClient) - { - string uri = "https://shop-rehau.ru/catalogsearch/result/?q=" + request; +//namespace Rehau.Sku.Assist +//{ +// static class SkuAssist +// { +// public async static Task GetContent(string request, HttpClient httpClient) +// { +// string uri = "https://shop-rehau.ru/catalogsearch/result/?q=" + request; +// ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; - ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; - HttpResponseMessage response = await httpClient.GetAsync(uri); - response.EnsureSuccessStatusCode(); +// return await httpClient.GetStringAsync(uri); +// } - IConfiguration config = Configuration.Default; - IBrowsingContext context = BrowsingContext.New(config); +// public async static Task GetDocument(string source) +// { +// IConfiguration config = Configuration.Default; +// IBrowsingContext context = BrowsingContext.New(config); - string source = await response.Content.ReadAsStringAsync(); - return await context.OpenAsync(req => req.Content(source)); - } +// return await context.OpenAsync(req => req.Content(source)); +// } - public static IProduct GetProductFromDocument(AngleSharp.Dom.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', ' ' }))) - // .Where(product => !product.Sku.Any(c => char.IsLetter(c))) - .FirstOrDefault(); - } - } -} +// 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', ' ' }))) +// // .Where(product => !product.Sku.Any(c => char.IsLetter(c))) +// .FirstOrDefault(); +// } +// } +//} -- cgit v1.2.3 From 198e5c886f0e32b953e8a8bb25c087e035093604 Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Mon, 29 Nov 2021 15:52:35 +0300 Subject: AngleSharp add --- Assistant/SkuAssist.cs | 67 +++++++++++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 34 deletions(-) (limited to 'Assistant/SkuAssist.cs') diff --git a/Assistant/SkuAssist.cs b/Assistant/SkuAssist.cs index d390a1d..a9de2e1 100644 --- a/Assistant/SkuAssist.cs +++ b/Assistant/SkuAssist.cs @@ -1,41 +1,40 @@ -//using System; -//using AngleSharp; -//using AngleSharp.Dom; -//using System.Linq; -//using System.Net; -//using System.Net.Http; -//using System.Threading.Tasks; +using AngleSharp; +using AngleSharp.Dom; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; -//namespace Rehau.Sku.Assist -//{ -// static class SkuAssist -// { -// public async static Task GetContent(string request, HttpClient httpClient) -// { -// string uri = "https://shop-rehau.ru/catalogsearch/result/?q=" + request; -// ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; +namespace Rehau.Sku.Assist +{ + static class SkuAssist + { + public async static Task GetContent(string request, HttpClient httpClient) + { + string uri = "https://shop-rehau.ru/catalogsearch/result/?q=" + request; + ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; -// return await httpClient.GetStringAsync(uri); -// } + return await httpClient.GetStringAsync(uri); + } -// public async static Task GetDocument(string source) -// { -// IConfiguration config = Configuration.Default; -// IBrowsingContext context = BrowsingContext.New(config); + public async static Task GetDocument(string source) + { + IConfiguration config = Configuration.Default; + IBrowsingContext context = BrowsingContext.New(config); -// return await context.OpenAsync(req => req.Content(source)); -// } + return await context.OpenAsync(req => req.Content(source)); + } -// 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', ' ' }))) -// // .Where(product => !product.Sku.Any(c => char.IsLetter(c))) -// .FirstOrDefault(); -// } -// } -//} + 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', ' ' }))) + // .Where(product => !product.Sku.Any(c => char.IsLetter(c))) + .FirstOrDefault(); + } + } +} -- cgit v1.2.3 From e9ec1df01b752b423b66cb30dc2025a396f769f5 Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Mon, 29 Nov 2021 16:36:04 +0300 Subject: Task chaining --- Assistant/SkuAssist.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Assistant/SkuAssist.cs') diff --git a/Assistant/SkuAssist.cs b/Assistant/SkuAssist.cs index a9de2e1..9d90394 100644 --- a/Assistant/SkuAssist.cs +++ b/Assistant/SkuAssist.cs @@ -17,12 +17,12 @@ namespace Rehau.Sku.Assist return await httpClient.GetStringAsync(uri); } - public async static Task GetDocument(string source) + public async static Task GetDocument(Task source) { IConfiguration config = Configuration.Default; IBrowsingContext context = BrowsingContext.New(config); - return await context.OpenAsync(req => req.Content(source)); + return await context.OpenAsync(req => req.Content(source.Result)); } public static IProduct GetProductFromDocument(IDocument document) -- cgit v1.2.3