summaryrefslogtreecommitdiff
path: root/RhSolutions.Parsers/DrinkingWaterHeatingPipes
diff options
context:
space:
mode:
authorSerghei Cebotari <serghei@cebotari.ru>2025-04-19 11:11:25 +0300
committerSerghei Cebotari <serghei@cebotari.ru>2025-04-19 11:11:25 +0300
commit411edebf289e216dcad8837c0f366076e2b5df9c (patch)
treeeeab7a1f24904d8afb1cbb0b8e6da8fe66a160e1 /RhSolutions.Parsers/DrinkingWaterHeatingPipes
parenta6d07d8e21cee1f3d0f0f87ee63241dde1aa7c3f (diff)
Refactor diameter handling to normalize values across fittings and pipesHEADmaster
Diffstat (limited to 'RhSolutions.Parsers/DrinkingWaterHeatingPipes')
-rw-r--r--RhSolutions.Parsers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs13
-rw-r--r--RhSolutions.Parsers/DrinkingWaterHeatingPipes/FlexPipe.cs2
-rw-r--r--RhSolutions.Parsers/DrinkingWaterHeatingPipes/PinkPipe.cs2
-rw-r--r--RhSolutions.Parsers/DrinkingWaterHeatingPipes/StabilPipe.cs2
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)
{