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; + } }