summaryrefslogtreecommitdiff
path: root/RhSolutions.Parsers
diff options
context:
space:
mode:
authorSerghei Cebotari <serghei@cebotari.ru>2024-02-16 14:18:49 +0300
committerSerghei Cebotari <serghei@cebotari.ru>2024-02-16 14:18:49 +0300
commitd4a9149daaff62cf3d991ee166e23a22574f5a6f (patch)
tree11e7a0dd3d2f2340b3d50f5753ada476980291fd /RhSolutions.Parsers
parentf1a7172d42ae843bfa8dcdf81ddad18c853b58db (diff)
Return flex result for stabil pipe over 40 diameter
Diffstat (limited to 'RhSolutions.Parsers')
-rw-r--r--RhSolutions.Parsers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs2
-rw-r--r--RhSolutions.Parsers/DrinkingWaterHeatingPipes/StabilPipe.cs30
2 files changed, 31 insertions, 1 deletions
diff --git a/RhSolutions.Parsers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs b/RhSolutions.Parsers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs
index f3e0fc2..c6ebda6 100644
--- a/RhSolutions.Parsers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs
+++ b/RhSolutions.Parsers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs
@@ -28,7 +28,7 @@ public abstract class DrinkingWaterHeatingPipe : IProductParser
["отр"] = "прям.отрезки"
};
- public bool TryParse(string input, out string output)
+ public virtual bool TryParse(string input, out string output)
{
output = string.Empty;
var diameterMatch = _diameter.Match(input);
diff --git a/RhSolutions.Parsers/DrinkingWaterHeatingPipes/StabilPipe.cs b/RhSolutions.Parsers/DrinkingWaterHeatingPipes/StabilPipe.cs
index 1a52562..f2c714d 100644
--- a/RhSolutions.Parsers/DrinkingWaterHeatingPipes/StabilPipe.cs
+++ b/RhSolutions.Parsers/DrinkingWaterHeatingPipes/StabilPipe.cs
@@ -14,4 +14,34 @@ public class StabilPipe : DrinkingWaterHeatingPipe
[50] = "50x6,9",
[63] = "63x8,6"
};
+ 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);
+ var typeMatch = _type.Match(input);
+ if (diameter > 40)
+ {
+ var flexParser = new FlexPipe();
+ return flexParser.TryParse(input, out output);
+ }
+ if (typeMatch.Success)
+ {
+ var type = typeMatch.Groups["Type"].Value;
+ output = $"Труба {_title} {_diameterNames[diameter]} {_makeUp[type]}";
+ }
+ else if (diameter < 32)
+ {
+ output = $"Труба {_title} {_diameterNames[diameter]} {_makeUp["бухт"]}";
+ }
+ else
+ {
+ output = $"Труба {_title} {_diameterNames[diameter]} {_makeUp["отр"]}";
+ }
+ return true;
+ }
}