diff options
Diffstat (limited to 'RhSolutions.Parsers/DrinkingWaterHeatingPipes')
-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; + } } |