summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--RhSolutions.Api.Tests/RautitanFittingsTests.cs15
-rw-r--r--RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallExternal.cs22
-rw-r--r--RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallInternal.cs26
-rw-r--r--RhSolutions.QueryModifiers/ProductQueryModifierFactory.cs4
4 files changed, 64 insertions, 3 deletions
diff --git a/RhSolutions.Api.Tests/RautitanFittingsTests.cs b/RhSolutions.Api.Tests/RautitanFittingsTests.cs
index 440d5d2..e897c03 100644
--- a/RhSolutions.Api.Tests/RautitanFittingsTests.cs
+++ b/RhSolutions.Api.Tests/RautitanFittingsTests.cs
@@ -56,7 +56,16 @@ public class RautitanFittingsTests : ProductQueryModifierTests
=> Execute(productType: "Фиксатор поворота отопление", query, modified);
[TestCase("Фиксатор поворота с кольцами 90°, 32", "Фиксатор поворота с кольцами 90° 32")]
- [TestCase("Фиксатор поворота с кольцами 45°, 16", "Фиксатор поворота с кольцами 45° 16")]
- public void BendFormerSanitaryTest(string query, string modified)
- => Execute(productType: "Фиксатор поворота водоснабжение", query, modified);
+ [TestCase("Фиксатор поворота с кольцами 45°, 16", "Фиксатор поворота с кольцами 45° 16")]
+ public void BendFormerSanitaryTest(string query, string modified)
+ => Execute(productType: "Фиксатор поворота водоснабжение", query, modified);
+
+ [TestCase("Угольник настенный с наружной резьбой 16-R 1/2 RX+", "Угольник настенный с наружной резьбой 16-R 1/2")]
+ public void ThreadElbowWallExternalTest(string query, string modified)
+ => Execute(productType: "Угольник настенный наружный", query, modified);
+
+ [TestCase("Угольник настенный с внутр. резьбой 16-Rp 1/2 RX+", "Угольник настенный внутр. резьба 16-Rp 1/2")]
+ [TestCase("Угольник настенный с длинным патрубком, внутр. резьба 16-Rp 1/2 RX+", "Угольник настенный внутр. резьба длинный 16-Rp 1/2")]
+ public void ThreadElbowWallInternalTest(string query, string modified)
+ => Execute(productType: "Угольник настенный внутренний", query, modified);
}
diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallExternal.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallExternal.cs
new file mode 100644
index 0000000..47c4b07
--- /dev/null
+++ b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallExternal.cs
@@ -0,0 +1,22 @@
+namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings;
+
+public class ThreadElbowWallExternal : DrinkingWaterHeatingFitting
+{
+ protected override string _title => "Угольник настенный с наружной резьбой";
+ protected override string? BuildRhSolutionsName(string query)
+ {
+ var diameterMatch = _diameter.Match(query);
+ if (!diameterMatch.Success)
+ {
+ return null;
+ }
+ var threadMatch = _thread.Match(query);
+ if (!threadMatch.Success)
+ {
+ return null;
+ }
+ string diameter = diameterMatch.Groups["Diameter"].Value;
+ string thread = threadMatch.Groups["Thread"].Value;
+ return $"{_title} {diameter}-R {thread}";
+ }
+}
diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallInternal.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallInternal.cs
new file mode 100644
index 0000000..3a33fce
--- /dev/null
+++ b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallInternal.cs
@@ -0,0 +1,26 @@
+using System.Text.RegularExpressions;
+
+namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings;
+
+public class ThreadElbowWallInternal : DrinkingWaterHeatingFitting
+{
+ protected override string _title => "Угольник настенный внутр. резьба";
+ private Regex _type = new(@"([\b\W])(?<Type>длин)([\b\w\.\s])");
+ protected override string? BuildRhSolutionsName(string query)
+ {
+ var diameterMatch = _diameter.Match(query);
+ if (!diameterMatch.Success)
+ {
+ return null;
+ }
+ var threadMatch = _thread.Match(query);
+ if (!threadMatch.Success)
+ {
+ return null;
+ }
+ var typeMatch = _type.Match(query);
+ string diameter = diameterMatch.Groups["Diameter"].Value;
+ string thread = threadMatch.Groups["Thread"].Value;
+ return $"{_title} {(typeMatch.Success ? "длинный " : string.Empty)}{diameter}-Rp {thread}";
+ }
+} \ No newline at end of file
diff --git a/RhSolutions.QueryModifiers/ProductQueryModifierFactory.cs b/RhSolutions.QueryModifiers/ProductQueryModifierFactory.cs
index aa5e273..39d1bbb 100644
--- a/RhSolutions.QueryModifiers/ProductQueryModifierFactory.cs
+++ b/RhSolutions.QueryModifiers/ProductQueryModifierFactory.cs
@@ -27,6 +27,10 @@ public class ProductQueryModifierFactory
return new ThreadElbowExternal();
case "Угольник с внутренней резьбой":
return new ThreadElbowInternal();
+ case "Угольник настенный наружный":
+ return new ThreadElbowWallExternal();
+ case "Угольник настенный внутренний":
+ return new ThreadElbowWallInternal();
case "Угольник с накидной гайкой":
return new ScrewcapElbow();
case "Муфта соединительная":