From c42e3e604d775bdaa896d7bc3d9886f6ce64c773 Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Wed, 8 Dec 2021 09:44:23 +0300 Subject: Add t-pieces request filter. Exclude CleanUp method to RequestModifier class. --- Source/Assistant/RequestModifier.cs | 60 +++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 Source/Assistant/RequestModifier.cs (limited to 'Source/Assistant/RequestModifier.cs') 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 additions = new List(); + + 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 -- cgit v1.2.3 From 8da955aab1ec6bd9ef6cbff13f47b1f89c465dbf Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Wed, 8 Dec 2021 10:38:58 +0300 Subject: Refactoring regex methods --- Source/Assistant/RequestModifier.cs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'Source/Assistant/RequestModifier.cs') diff --git a/Source/Assistant/RequestModifier.cs b/Source/Assistant/RequestModifier.cs index 28f5775..7532b2d 100644 --- a/Source/Assistant/RequestModifier.cs +++ b/Source/Assistant/RequestModifier.cs @@ -22,14 +22,16 @@ namespace Rehau.Sku.Assist private static string _tPiece(this string line) { - if (!line.ToLower().Contains("тройник")) + Regex regex = new Regex(@"\d{2}.\d{2}.\d{2}"); + + if (!regex.IsMatch(line)) return line; - string m = Regex.Match(line, @"\d{2}.\d{2}.\d{2}").Value; + string match = regex.Match(line).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 endFaceA = int.Parse($"{match[0]}{match[1]}"), + side = int.Parse($"{match[3]}{match[4]}"), + endFaceB = int.Parse($"{match[6]}{match[7]}"); int[] endFaces = new[] { endFaceA, endFaceB }; @@ -47,14 +49,15 @@ namespace Rehau.Sku.Assist 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; + string modifiedMatch = string.Join(" ", additions) + piece; - return line.Replace(m, replace); + return line.Replace(match, modifiedMatch); } } } \ No newline at end of file -- cgit v1.2.3 From 89e420a890afb39c342a82b2ca1bf2f18df407dc Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Wed, 8 Dec 2021 12:03:33 +0300 Subject: Refactoring --- Source/Assistant/RequestModifier.cs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'Source/Assistant/RequestModifier.cs') diff --git a/Source/Assistant/RequestModifier.cs b/Source/Assistant/RequestModifier.cs index 7532b2d..d6433ed 100644 --- a/Source/Assistant/RequestModifier.cs +++ b/Source/Assistant/RequestModifier.cs @@ -17,10 +17,10 @@ namespace Rehau.Sku.Assist .Replace("Ø", " ") .ToString(); - return replace._tPiece(); + return replace._tPieceNormalize(); } - private static string _tPiece(this string line) + private static string _tPieceNormalize(this string line) { Regex regex = new Regex(@"\d{2}.\d{2}.\d{2}"); @@ -29,11 +29,12 @@ namespace Rehau.Sku.Assist string match = regex.Match(line).Value; - int endFaceA = int.Parse($"{match[0]}{match[1]}"), - side = int.Parse($"{match[3]}{match[4]}"), - endFaceB = int.Parse($"{match[6]}{match[7]}"); - - int[] endFaces = new[] { endFaceA, endFaceB }; + int side = int.Parse($"{match[3]}{match[4]}"); + int[] endFaces = new int[] + { + int.Parse($"{match[0]}{match[1]}"), + int.Parse($"{match[6]}{match[7]}") + }; List additions = new List(); @@ -42,7 +43,7 @@ namespace Rehau.Sku.Assist else { - if (new[] { endFaceA, endFaceB, side }.Distinct().Count() == 1) + if (new[] { endFaces[0], endFaces[1], side }.Distinct().Count() == 1) additions.Add("равнопроходной"); else additions.Add("уменьшенный"); @@ -50,7 +51,7 @@ namespace Rehau.Sku.Assist if (endFaces.Any(x => x > side)) additions.Add("боковой"); - if (endFaceA != endFaceB) + if (endFaces[0] != endFaces[1]) additions.Add("торцевой"); } -- cgit v1.2.3 From 74877f874e401d29f0576c5027abba83587103f3 Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Wed, 8 Dec 2021 13:58:37 +0300 Subject: Rename to RehauSku --- Source/Assistant/RequestModifier.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source/Assistant/RequestModifier.cs') diff --git a/Source/Assistant/RequestModifier.cs b/Source/Assistant/RequestModifier.cs index d6433ed..c479a74 100644 --- a/Source/Assistant/RequestModifier.cs +++ b/Source/Assistant/RequestModifier.cs @@ -3,7 +3,7 @@ using System.Linq; using System.Text; using System.Text.RegularExpressions; -namespace Rehau.Sku.Assist +namespace RehauSku.Assist { public static class RequestModifier { -- cgit v1.2.3 From dc1fc8b221e9324fe0f82c4ea4a32d87d282bd25 Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Wed, 8 Dec 2021 14:45:14 +0300 Subject: refactoring namespaces --- Source/Assistant/RequestModifier.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source/Assistant/RequestModifier.cs') diff --git a/Source/Assistant/RequestModifier.cs b/Source/Assistant/RequestModifier.cs index c479a74..0db0b90 100644 --- a/Source/Assistant/RequestModifier.cs +++ b/Source/Assistant/RequestModifier.cs @@ -3,7 +3,7 @@ using System.Linq; using System.Text; using System.Text.RegularExpressions; -namespace RehauSku.Assist +namespace RehauSku.Assistant { public static class RequestModifier { -- cgit v1.2.3 From 0e92b45e3133788b15bf0a6c46f3317315363c8b Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Thu, 9 Dec 2021 10:30:14 +0300 Subject: Fix for RAUPIANO t-pieces in request modifier --- Source/Assistant/RequestModifier.cs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'Source/Assistant/RequestModifier.cs') diff --git a/Source/Assistant/RequestModifier.cs b/Source/Assistant/RequestModifier.cs index 0db0b90..9f42e71 100644 --- a/Source/Assistant/RequestModifier.cs +++ b/Source/Assistant/RequestModifier.cs @@ -36,6 +36,9 @@ namespace RehauSku.Assistant int.Parse($"{match[6]}{match[7]}") }; + if (new[] { endFaces[0], endFaces[1], side }.Any(x => x == 45 || x == 90 || x == 87)) + return line; + List additions = new List(); if (endFaces.All(x => x < side)) -- cgit v1.2.3