summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--RhSolutions.Parsers.Tests/RautitanPipesTests.cs19
-rw-r--r--RhSolutions.Parsers/DrinkingWaterHeatingPipes/FlexPipe.cs13
-rw-r--r--RhSolutions.Parsers/DrinkingWaterHeatingPipes/PinkPipe.cs20
3 files changed, 43 insertions, 9 deletions
diff --git a/RhSolutions.Parsers.Tests/RautitanPipesTests.cs b/RhSolutions.Parsers.Tests/RautitanPipesTests.cs
index 14f7270..06b743f 100644
--- a/RhSolutions.Parsers.Tests/RautitanPipesTests.cs
+++ b/RhSolutions.Parsers.Tests/RautitanPipesTests.cs
@@ -3,17 +3,18 @@ namespace RhSolutions.Api.Tests;
public class RautitanPipesTests : ProductParsersTests
{
- [TestCase("Унив.труба RAUTITAN flex 16x2,2, бухта 100м", "Труба РЕХАУ FLEX 16x2,2 бухта")]
- [TestCase("Труба flex 16", "Труба РЕХАУ FLEX 16x2,2 бухта")]
- [TestCase("Унив.труба RAUTITAN flex 32x4,4, прям.отрезки 6м", "Труба РЕХАУ FLEX 32x4,4 прям.отрезки")]
- [TestCase("Труба flex 32", "Труба РЕХАУ FLEX 32x4,4 прям.отрезки")]
+ [TestCase("Унив.труба RAUTITAN flex 16x2,2, бухта 100м", "Труба РЕХАУ FLEX 16x2,2")]
+ [TestCase("Труба flex 16", "Труба РЕХАУ FLEX 16x2,2")]
+ [TestCase("Унив.труба RAUTITAN flex 32x4,4, прям.отрезки 6м", "Труба РЕХАУ FLEX 32x4,4")]
+ [TestCase("Труба flex 32", "Труба РЕХАУ FLEX 32x4,4")]
public void FlexPipeTest(string query, string modified)
=> Invoke(productType: "Flex", query, modified);
- [TestCase("Унив. труба RAUTITAN pink+ 16х2,2 мм, бухта 120 м", "Труба РЕХАУ PINK 16х2,2 бухта")]
- [TestCase("труба pink 16", "Труба РЕХАУ PINK 16х2,2 бухта")]
- [TestCase("Унив. труба RAUTITAN pink+ 32х4,4 мм, бухта 50 м", "Труба РЕХАУ PINK 32х4,4 бухта")]
- [TestCase("труба pink 32", "Труба РЕХАУ PINK 32х4,4 прямые отрезки")]
+ [TestCase("Унив. труба RAUTITAN pink+ 16х2,2 мм, бухта 120 м", "Труба РЕХАУ PINK 16х2,2")]
+ [TestCase("труба pink 16", "Труба РЕХАУ PINK 16х2,2")]
+ [TestCase("Унив. труба RAUTITAN pink+ 32х4,4 мм, бухта 50 м", "Труба РЕХАУ PINK 32х4,4")]
+ [TestCase("труба pink 32", "Труба РЕХАУ PINK 32х4,4")]
+ [TestCase("труба pink 40", "Труба pink+ 40х5,5")]
public void PinkPipeTest(string query, string modified)
=> Invoke(productType: "Pink", query, modified);
@@ -21,7 +22,7 @@ public class RautitanPipesTests : ProductParsersTests
[TestCase("труба stabil 16", "Труба Stabil -PLATINUM 16,2х2,6 бухта")]
[TestCase("Универсальн.труба RAUTITAN stabil 32х4,7 мм, прям.отрезки 5м", "Труба Stabil -PLATINUM 32х4,7 прям.отрезки")]
[TestCase("труба stabil 32", "Труба Stabil -PLATINUM 32х4,7 прям.отрезки")]
- [TestCase("труба 50", "Труба РЕХАУ FLEX 50x6,9 прям.отрезки")]
+ [TestCase("труба 50", "Труба РЕХАУ FLEX 50x6,9")]
public void StabilPipeTest(string query, string modified)
=> Invoke(productType: "Stabil", query, modified);
diff --git a/RhSolutions.Parsers/DrinkingWaterHeatingPipes/FlexPipe.cs b/RhSolutions.Parsers/DrinkingWaterHeatingPipes/FlexPipe.cs
index 011b18d..aaf5dfc 100644
--- a/RhSolutions.Parsers/DrinkingWaterHeatingPipes/FlexPipe.cs
+++ b/RhSolutions.Parsers/DrinkingWaterHeatingPipes/FlexPipe.cs
@@ -4,4 +4,17 @@ namespace RhSolutions.Parsers.Pipes;
public class FlexPipe : DrinkingWaterHeatingPipe
{
protected override string _title => "РЕХАУ FLEX";
+
+ public override bool TryParse(string input, out string output)
+ {
+ output = string.Empty;
+ var diameterMatch = _diameter.Match(input);
+ if (!diameterMatch.Success)
+ {
+ return false;
+ }
+ var diameter = int.Parse(diameterMatch.Groups["Diameter"].Value);
+ output = $"Труба {_title} {_diameterNames[diameter]}";
+ return true;
+ }
} \ No newline at end of file
diff --git a/RhSolutions.Parsers/DrinkingWaterHeatingPipes/PinkPipe.cs b/RhSolutions.Parsers/DrinkingWaterHeatingPipes/PinkPipe.cs
index 1e63a79..e182747 100644
--- a/RhSolutions.Parsers/DrinkingWaterHeatingPipes/PinkPipe.cs
+++ b/RhSolutions.Parsers/DrinkingWaterHeatingPipes/PinkPipe.cs
@@ -21,4 +21,24 @@ public class PinkPipe : DrinkingWaterHeatingPipe
[50] = "50х6,9",
[63] = "63х8,7"
};
+
+ public override bool TryParse(string input, out string output)
+ {
+ output = string.Empty;
+ var diameterMatch = _diameter.Match(input);
+ if (!diameterMatch.Success)
+ {
+ return false;
+ }
+ var diameter = int.Parse(diameterMatch.Groups["Diameter"].Value);
+ if (diameter < 40)
+ {
+ output = $"Труба {_title} {_diameterNames[diameter]}";
+ }
+ else
+ {
+ output = $"Труба pink+ {_diameterNames[diameter]}";
+ }
+ return true;
+ }
}