diff options
author | Serghei Cebotari <51533848+schebotar@users.noreply.github.com> | 2021-12-03 23:07:10 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-03 23:07:10 +0300 |
commit | f6f6678ccf54f0513726fbb61a99d437ed68bb81 (patch) | |
tree | c7a0b8ef9ea39a8c7c801b41ff37ff544c73d3bf /src | |
parent | f5799a28eaef3f3ea24ba56dc16970d6203b73fd (diff) | |
parent | 4acde8a85b29ca968739bf1bf38d614a2830f6e7 (diff) |
Merge pull request #6 from schebotar/dev
Dev
Diffstat (limited to 'src')
-rw-r--r-- | src/Assistant/IProduct.cs | 9 | ||||
-rw-r--r-- | src/Assistant/Product.cs | 21 | ||||
-rw-r--r-- | src/Assistant/SkuAssist.cs | 45 | ||||
-rw-r--r-- | src/ExcelDNA/AddIn.cs | 24 | ||||
-rw-r--r-- | src/ExcelDNA/Functions.cs | 21 |
5 files changed, 0 insertions, 120 deletions
diff --git a/src/Assistant/IProduct.cs b/src/Assistant/IProduct.cs deleted file mode 100644 index aca3ff5..0000000 --- a/src/Assistant/IProduct.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Rehau.Sku.Assist -{ - interface IProduct - { - string Sku { get; } - string Name { get; } - string Uri { get; } - } -} diff --git a/src/Assistant/Product.cs b/src/Assistant/Product.cs deleted file mode 100644 index 17a7065..0000000 --- a/src/Assistant/Product.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace Rehau.Sku.Assist -{ - public class Product : IProduct - { - public string Sku { get; } - public string Name { get; } - - public string Uri => throw new System.NotImplementedException(); - - public Product(string sku, string name) - { - Sku = sku; - Name = name; - } - - public override string ToString() - { - return $"{this.Name} ({this.Sku})"; - } - } -}
\ No newline at end of file diff --git a/src/Assistant/SkuAssist.cs b/src/Assistant/SkuAssist.cs deleted file mode 100644 index dc36dc0..0000000 --- a/src/Assistant/SkuAssist.cs +++ /dev/null @@ -1,45 +0,0 @@ -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 "); - } - } -} - - diff --git a/src/ExcelDNA/AddIn.cs b/src/ExcelDNA/AddIn.cs deleted file mode 100644 index dd99667..0000000 --- a/src/ExcelDNA/AddIn.cs +++ /dev/null @@ -1,24 +0,0 @@ -using ExcelDna.Integration; -using ExcelDna.Registration; - -namespace Rehau.Sku.Assist -{ - public class AddIn : IExcelAddIn - { - public void AutoOpen() - { - RegisterFunctions(); - } - - public void AutoClose() - { - } - - void RegisterFunctions() - { - ExcelRegistration.GetExcelFunctions() - .ProcessAsyncRegistrations(nativeAsyncIfAvailable: false) - .RegisterFunctions(); - } - } -} diff --git a/src/ExcelDNA/Functions.cs b/src/ExcelDNA/Functions.cs deleted file mode 100644 index ec9c607..0000000 --- a/src/ExcelDNA/Functions.cs +++ /dev/null @@ -1,21 +0,0 @@ -using AngleSharp.Dom; -using ExcelDna.Integration; -using System.Net.Http; -using System.Threading.Tasks; - -namespace Rehau.Sku.Assist -{ - public class Functions - { - private static HttpClient _httpClient = new HttpClient(); - - [ExcelFunction] - public static async Task<string> RAUNAME(string request) - { - Task<string> contentTask = Task.Run(() => SkuAssist.GetContent(request, _httpClient)); - Task<IDocument> documentTask = await contentTask.ContinueWith(content => SkuAssist.GetDocument(content)); - IProduct product = await documentTask.ContinueWith(doc => SkuAssist.GetProductFromDocument(doc.Result)); - return product == null ? ExcelError.ExcelErrorNull.ToString() : product.ToString(); - } - } -}
\ No newline at end of file |