diff options
author | Sergey Chebotar <s.chebotar@gmail.com> | 2021-12-08 09:44:23 +0300 |
---|---|---|
committer | Sergey Chebotar <s.chebotar@gmail.com> | 2021-12-08 09:44:23 +0300 |
commit | c42e3e604d775bdaa896d7bc3d9886f6ce64c773 (patch) | |
tree | 3fafb289777e840f446c8881d18eed0af60dc833 /Source/Assistant | |
parent | adf66ad2a2c358ec8d3edfc92f96ba0376888e74 (diff) |
Add t-pieces request filter. Exclude CleanUp method to RequestModifier class.
Diffstat (limited to 'Source/Assistant')
-rw-r--r-- | Source/Assistant/HttpClientUtil.cs | 14 | ||||
-rw-r--r-- | Source/Assistant/RequestModifier.cs | 60 |
2 files changed, 61 insertions, 13 deletions
diff --git a/Source/Assistant/HttpClientUtil.cs b/Source/Assistant/HttpClientUtil.cs index 6eb0b69..2d439ea 100644 --- a/Source/Assistant/HttpClientUtil.cs +++ b/Source/Assistant/HttpClientUtil.cs @@ -4,7 +4,6 @@ using System; using System.Net; using System.Net.Http; using System.Threading.Tasks; -using System.Text; namespace Rehau.Sku.Assist { @@ -35,7 +34,7 @@ namespace Rehau.Sku.Assist UriBuilder baseUri = new UriBuilder("https", "shop-rehau.ru"); baseUri.Path = "/catalogsearch/result/index/"; - string cleanedRequest = request._CleanRequest(); + string cleanedRequest = request.CleanRequest(); switch (AddIn.responseOrder) { @@ -58,16 +57,5 @@ namespace Rehau.Sku.Assist return baseUri.Uri; } - - private static string _CleanRequest(this string input) - { - return new StringBuilder(input) - .Replace("+", " plus ") - .Replace("РХ", "") - .Replace("º", " ") - .Replace(".", " ") - .Replace("Ø", " ") - .ToString(); - } } }
\ No newline at end of file diff --git a/Source/Assistant/RequestModifier.cs b/Source/Assistant/RequestModifier.cs new file mode 100644 index 0000000..28f5775 --- /dev/null +++ b/Source/Assistant/RequestModifier.cs @@ -0,0 +1,60 @@ +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; + +namespace Rehau.Sku.Assist +{ + public static class RequestModifier + { + public static string CleanRequest(this string input) + { + string replace = new StringBuilder(input) + .Replace("+", " plus ") + .Replace("РХ", "") + .Replace("º", " ") + .Replace(".", " ") + .Replace("Ø", " ") + .ToString(); + + return replace._tPiece(); + } + + private static string _tPiece(this string line) + { + if (!line.ToLower().Contains("тройник")) + return line; + + string m = Regex.Match(line, @"\d{2}.\d{2}.\d{2}").Value; + + int endFaceA = int.Parse($"{m[0]}{m[1]}"); + int side = int.Parse($"{m[3]}{m[4]}"); + int endFaceB = int.Parse($"{m[6]}{m[7]}"); + + int[] endFaces = new[] { endFaceA, endFaceB }; + + List<string> additions = new List<string>(); + + if (endFaces.All(x => x < side)) + additions.Add("увеличенный боковой"); + + else + { + if (new[] { endFaceA, endFaceB, side }.Distinct().Count() == 1) + additions.Add("равнопроходной"); + else + additions.Add("уменьшенный"); + + if (endFaces.Any(x => x > side)) + additions.Add("боковой"); + if (endFaceA != endFaceB) + additions.Add("торцевой"); + } + + string piece = $" {endFaces.Max()}-{side}-{endFaces.Min()} "; + string replace = string.Join(" ", additions) + piece; + + return line.Replace(m, replace); + } + } +}
\ No newline at end of file |