summaryrefslogtreecommitdiff
path: root/RhSolutions.Parsers/DrinkingWaterHeatingFittings/ConnectionBend.cs
blob: af54329757bcbec495c9238d21447ef0ad64b32a (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
using System.Text.RegularExpressions;

namespace RhSolutions.Parsers.Fittings;

[ParserKey("Трубка Г-образная")]
public class ConnectionBend : DrinkingWaterHeatingFitting
{
	private static readonly int[] lengths = [250, 500, 1000];
	private static readonly Regex _pattern = 
		new(@"([\b\D]|^)?(?<Diameter>16|20|25)(\D+|.*15.*)(?<Length>\b\d{3,4})([\b\D]|$)");
	protected override string _title => "Трубка Г-образная";

	public override bool TryParse(string input, out string output)
	{
		output = string.Empty;
		var match = _pattern.Match(input);
		if (!match.Success)
		{
			return false;
		}
		string diameter =  match.Groups["Diameter"].Value;
		int length = int.Parse(match.Groups["Length"].Value);
		int nearest = lengths.OrderBy(x => Math.Abs(x - length)).First();
		output = $"{_title} {diameter}/{nearest}";
		return true;
	}
}