diff options
author | Serghei Cebotari <serghei@cebotari.ru> | 2024-02-16 14:18:49 +0300 |
---|---|---|
committer | Serghei Cebotari <serghei@cebotari.ru> | 2024-02-16 14:18:49 +0300 |
commit | d4a9149daaff62cf3d991ee166e23a22574f5a6f (patch) | |
tree | 11e7a0dd3d2f2340b3d50f5753ada476980291fd /RhSolutions.Parsers | |
parent | f1a7172d42ae843bfa8dcdf81ddad18c853b58db (diff) |
Return flex result for stabil pipe over 40 diameter
Diffstat (limited to 'RhSolutions.Parsers')
-rw-r--r-- | RhSolutions.Parsers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs | 2 | ||||
-rw-r--r-- | RhSolutions.Parsers/DrinkingWaterHeatingPipes/StabilPipe.cs | 30 |
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; + } } |