summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--RhSolutions.Api.Tests/RautitanFittingsTests.cs24
-rw-r--r--RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Eurocone.cs21
-rw-r--r--RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs16
-rw-r--r--RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs9
-rw-r--r--RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs10
-rw-r--r--RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeStabil.cs10
-rw-r--r--RhSolutions.QueryModifiers/ProductQueryModifierFactory.cs8
7 files changed, 98 insertions, 0 deletions
diff --git a/RhSolutions.Api.Tests/RautitanFittingsTests.cs b/RhSolutions.Api.Tests/RautitanFittingsTests.cs
index 53c288c..b86a5fb 100644
--- a/RhSolutions.Api.Tests/RautitanFittingsTests.cs
+++ b/RhSolutions.Api.Tests/RautitanFittingsTests.cs
@@ -95,4 +95,28 @@ public class RautitanFittingsTests : ProductQueryModifierTests
[TestCase("Заглушка, 16, латунь", "Заглушка для полимерн. трубы 16")]
public void DummyPlugTest(string query, string modified)
=> Execute(productType: "Заглушка труб RAUTITAN", query, modified);
+
+ [TestCase("Концовка разб. 3/4'' (еврок) для универс. трубы 16", "Резьбозажимное соединение flex/pink 16х2,2xG3/4")]
+ [TestCase("Переходник компрессионный PEX 20х2.8-G 3/4\" Евроконус", "Резьбозажимное соединение flex/pink 20х2,8xG3/4")]
+ [TestCase("Резьбозажимное соединение flex/pink 20х2,8xG3/4", "Резьбозажимное соединение flex/pink 20х2,8xG3/4")]
+ public void EuroconeFlexTest(string query, string modified)
+ => Execute(productType: "Резьбозажимное flex", query, modified);
+
+ [TestCase("Резьбозажимное соединение stabil 16,2x2,6xG3/4", "Резьбозажимное соединение stabil 16,2x2,6xG3/4")]
+ [TestCase("Резьбозажимное соединение stabil 20x2,9xG3/4", "Резьбозажимное соединение stabil 20x2,9xG3/4")]
+ [TestCase("Концовка разб.3/4''(еврок.) для PE-Xc и PE-MDXс 16", "Резьбозажимное соединение stabil 16,2x2,6xG3/4")]
+ public void EuroconeStabilTest(string query, string modified)
+ => Execute(productType: "Резьбозажимное stabil", query, modified);
+
+ [TestCase("Переходник на евроконус 16-G 3/4", "Переходник на евроконус 16-G 3/4")]
+ [TestCase("Соед.прям. с вн.резьбой (н.гайка, еврок.) 16 ник.", "Переходник на евроконус 16-G 3/4")]
+ [TestCase("Переходник с накидной гайкой 16x2.2 -G 3/4\" Евроконус, c гильзой в комплекте", "Переходник на евроконус 16-G 3/4")]
+ public void EuroconeAdapterTest(string query, string modified)
+ => Execute(productType: "Переходник на евроконус", query, modified);
+
+ [TestCase("Резьбозажимное соединение для металлической трубки G 3/4 -15", "Резьбозажимное соединение для металлической трубки G 3/4 -15")]
+ [TestCase("Концовка для монтажной трубы 15 х 1/2''", "Резьбозажимное соединение для металлической трубки G 3/4 -15")]
+ [TestCase("Фитинг подключения L и T-образной медной трубки - D15 - G 3/4", "Резьбозажимное соединение для металлической трубки G 3/4 -15")]
+ public void EuroconeConnectionBendTest(string query, string modified)
+ => Execute(productType: "Резьбозажимное для трубки", query, modified);
}
diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Eurocone.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Eurocone.cs
new file mode 100644
index 0000000..a658c17
--- /dev/null
+++ b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Eurocone.cs
@@ -0,0 +1,21 @@
+namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings;
+
+public abstract class Eurocone : DrinkingWaterHeatingFitting
+{
+ protected virtual Dictionary<string, string> _titles { get; } = new();
+
+ protected override string? BuildRhSolutionsName(string query)
+ {
+ var diameterMatch = _diameter.Match(query);
+ if (diameterMatch.Success)
+ {
+ string diameter = diameterMatch.Groups["Diameter"].Value;
+ if (_titles.TryGetValue(diameter, out string? title))
+ {
+ return title;
+ }
+ else return null;
+ }
+ return null;
+ }
+}
diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs
new file mode 100644
index 0000000..120ba32
--- /dev/null
+++ b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs
@@ -0,0 +1,16 @@
+namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings;
+
+public class EuroconeAdapter : DrinkingWaterHeatingFitting
+{
+ protected override string _title => "Переходник на евроконус";
+ protected override string? BuildRhSolutionsName(string query)
+ {
+ var diameterMatch = _diameter.Match(query);
+ if (diameterMatch.Success)
+ {
+ string diameter = diameterMatch.Groups["Diameter"].Value;
+ return $"{_title} {diameter}-G 3/4";
+ }
+ return null;
+ }
+} \ No newline at end of file
diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs
new file mode 100644
index 0000000..7f7cee3
--- /dev/null
+++ b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs
@@ -0,0 +1,9 @@
+namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings;
+
+public class EuroconeConnectionBend : DrinkingWaterHeatingFitting
+{
+ protected override string? BuildRhSolutionsName(string query)
+ {
+ return "Резьбозажимное соединение для металлической трубки G 3/4 -15";
+ }
+} \ No newline at end of file
diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs
new file mode 100644
index 0000000..382e775
--- /dev/null
+++ b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs
@@ -0,0 +1,10 @@
+namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings;
+
+public class EuroconeFlex : Eurocone
+{
+ protected override Dictionary<string, string> _titles => new()
+ {
+ ["16"] = "Резьбозажимное соединение flex/pink 16х2,2xG3/4",
+ ["20"] = "Резьбозажимное соединение flex/pink 20х2,8xG3/4"
+ };
+}
diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeStabil.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeStabil.cs
new file mode 100644
index 0000000..bc7c34d
--- /dev/null
+++ b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeStabil.cs
@@ -0,0 +1,10 @@
+namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings;
+
+public class EuroconeStabil : Eurocone
+{
+ protected override Dictionary<string, string> _titles => new()
+ {
+ ["16"] = "Резьбозажимное соединение stabil 16,2x2,6xG3/4",
+ ["20"] = "Резьбозажимное соединение stabil 20x2,9xG3/4"
+ };
+} \ No newline at end of file
diff --git a/RhSolutions.QueryModifiers/ProductQueryModifierFactory.cs b/RhSolutions.QueryModifiers/ProductQueryModifierFactory.cs
index 2459ad7..6c7292d 100644
--- a/RhSolutions.QueryModifiers/ProductQueryModifierFactory.cs
+++ b/RhSolutions.QueryModifiers/ProductQueryModifierFactory.cs
@@ -49,6 +49,14 @@ public class ProductQueryModifierFactory
return new ConnectionBend();
case "Трубка Т-образная":
return new ConnectionTee();
+ case "Резьбозажимное flex":
+ return new EuroconeFlex();
+ case "Резьбозажимное stabil":
+ return new EuroconeStabil();
+ case "Переходник на евроконус":
+ return new EuroconeAdapter();
+ case "Резьбозажимное для трубки":
+ return new EuroconeConnectionBend();
case "Заглушка труб RAUTITAN":
return new DummyPlug();
case "Flex":