diff options
author | Serghei Cebotari <serghei@cebotari.ru> | 2025-04-19 11:11:25 +0300 |
---|---|---|
committer | Serghei Cebotari <serghei@cebotari.ru> | 2025-04-19 11:11:25 +0300 |
commit | 411edebf289e216dcad8837c0f366076e2b5df9c (patch) | |
tree | eeab7a1f24904d8afb1cbb0b8e6da8fe66a160e1 /RhSolutions.Parsers/DrinkingWaterHeatingPipes | |
parent | a6d07d8e21cee1f3d0f0f87ee63241dde1aa7c3f (diff) |
Diffstat (limited to 'RhSolutions.Parsers/DrinkingWaterHeatingPipes')
4 files changed, 14 insertions, 5 deletions
diff --git a/RhSolutions.Parsers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs b/RhSolutions.Parsers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs index c6ebda6..250d129 100644 --- a/RhSolutions.Parsers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs +++ b/RhSolutions.Parsers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs @@ -5,7 +5,7 @@ namespace RhSolutions.Parsers.Pipes; public abstract class DrinkingWaterHeatingPipe : IProductParser { protected static readonly Regex _diameter = - new(@"([\b\D]|^)?(?<Diameter>16|20|25|32|40|50|63)([\b\D]|$)"); + new(@"([\b\D]|^)?(?<Diameter>16|20|25|32|40|50|63|26)([\b\D]|$)"); protected static readonly Regex _type = new(@"([\b\W])(?<Type>бухт|отр|штанг)([\b\w\.\s])"); protected virtual string _title { get; } = string.Empty; @@ -36,7 +36,7 @@ public abstract class DrinkingWaterHeatingPipe : IProductParser { return false; } - var diameter = int.Parse(diameterMatch.Groups["Diameter"].Value); + var diameter = int.Parse(NormalizeDiameter(diameterMatch.Groups["Diameter"].Value)); var typeMatch = _type.Match(input); if (typeMatch.Success) { @@ -53,4 +53,13 @@ public abstract class DrinkingWaterHeatingPipe : IProductParser } return true; } + + protected string NormalizeDiameter(string diameter) + { + return diameter switch + { + "26" => "25", + _ => diameter + }; + } } diff --git a/RhSolutions.Parsers/DrinkingWaterHeatingPipes/FlexPipe.cs b/RhSolutions.Parsers/DrinkingWaterHeatingPipes/FlexPipe.cs index aaf5dfc..768d86c 100644 --- a/RhSolutions.Parsers/DrinkingWaterHeatingPipes/FlexPipe.cs +++ b/RhSolutions.Parsers/DrinkingWaterHeatingPipes/FlexPipe.cs @@ -13,7 +13,7 @@ public class FlexPipe : DrinkingWaterHeatingPipe { return false; } - var diameter = int.Parse(diameterMatch.Groups["Diameter"].Value); + var diameter = int.Parse(NormalizeDiameter(diameterMatch.Groups["Diameter"].Value)); output = $"Труба {_title} {_diameterNames[diameter]}"; return true; } diff --git a/RhSolutions.Parsers/DrinkingWaterHeatingPipes/PinkPipe.cs b/RhSolutions.Parsers/DrinkingWaterHeatingPipes/PinkPipe.cs index e182747..14bf939 100644 --- a/RhSolutions.Parsers/DrinkingWaterHeatingPipes/PinkPipe.cs +++ b/RhSolutions.Parsers/DrinkingWaterHeatingPipes/PinkPipe.cs @@ -30,7 +30,7 @@ public class PinkPipe : DrinkingWaterHeatingPipe { return false; } - var diameter = int.Parse(diameterMatch.Groups["Diameter"].Value); + var diameter = int.Parse(NormalizeDiameter(diameterMatch.Groups["Diameter"].Value)); if (diameter < 40) { output = $"Труба {_title} {_diameterNames[diameter]}"; diff --git a/RhSolutions.Parsers/DrinkingWaterHeatingPipes/StabilPipe.cs b/RhSolutions.Parsers/DrinkingWaterHeatingPipes/StabilPipe.cs index f2c714d..4303daf 100644 --- a/RhSolutions.Parsers/DrinkingWaterHeatingPipes/StabilPipe.cs +++ b/RhSolutions.Parsers/DrinkingWaterHeatingPipes/StabilPipe.cs @@ -22,7 +22,7 @@ public class StabilPipe : DrinkingWaterHeatingPipe { return false; } - var diameter = int.Parse(diameterMatch.Groups["Diameter"].Value); + var diameter = int.Parse(NormalizeDiameter(diameterMatch.Groups["Diameter"].Value)); var typeMatch = _type.Match(input); if (diameter > 40) { |