From d4a9149daaff62cf3d991ee166e23a22574f5a6f Mon Sep 17 00:00:00 2001 From: Serghei Cebotari Date: Fri, 16 Feb 2024 14:18:49 +0300 Subject: Return flex result for stabil pipe over 40 diameter --- .../DrinkingWaterHeatingPipe.cs | 2 +- .../DrinkingWaterHeatingPipes/StabilPipe.cs | 30 ++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) (limited to 'RhSolutions.Parsers') 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; + } } -- cgit v1.2.3