summaryrefslogtreecommitdiff
path: root/RhSolutions.Parsers/DrinkingWaterHeatingPipes/StabilPipe.cs
blob: 4303daf779fcc430d815496068c5e9388bd87649 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
namespace RhSolutions.Parsers.Pipes;

[ParserKey("Stabil")]
public class StabilPipe : DrinkingWaterHeatingPipe
{
	protected override string _title => "Stabil -PLATINUM";
	protected override Dictionary<int, string> _diameterNames => new()
	{
		[16] = "16,2х2,6",
		[20] = "20х2,9",
		[25] = "25х3,7",
		[32] = "32х4,7",
		[40] = "40х6,0",
		[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(NormalizeDiameter(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;
	}	
}