0
0

Add wall mounted thread elbows

This commit is contained in:
Serghei Cebotari 2023-10-13 22:35:48 +03:00
parent f38dc2f199
commit 67c7546d59
4 changed files with 64 additions and 3 deletions

View File

@ -56,7 +56,16 @@ public class RautitanFittingsTests : ProductQueryModifierTests
=> Execute(productType: "Фиксатор поворота отопление", query, modified);
[TestCase("Фиксатор поворота с кольцами 90°, 32", "Фиксатор поворота с кольцами 90° 32")]
[TestCase("Фиксатор поворота с кольцами 45°, 16", "Фиксатор поворота с кольцами 45° 16")]
public void BendFormerSanitaryTest(string query, string modified)
=> Execute(productType: "Фиксатор поворота водоснабжение", query, modified);
[TestCase("Фиксатор поворота с кольцами 45°, 16", "Фиксатор поворота с кольцами 45° 16")]
public void BendFormerSanitaryTest(string query, string modified)
=> Execute(productType: "Фиксатор поворота водоснабжение", query, modified);
[TestCase("Угольник настенный с наружной резьбой 16-R 1/2 RX+", "Угольник настенный с наружной резьбой 16-R 1/2")]
public void ThreadElbowWallExternalTest(string query, string modified)
=> Execute(productType: "Угольник настенный наружный", query, modified);
[TestCase("Угольник настенный с внутр. резьбой 16-Rp 1/2 RX+", "Угольник настенный внутр. резьба 16-Rp 1/2")]
[TestCase("Угольник настенный с длинным патрубком, внутр. резьба 16-Rp 1/2 RX+", "Угольник настенный внутр. резьба длинный 16-Rp 1/2")]
public void ThreadElbowWallInternalTest(string query, string modified)
=> Execute(productType: "Угольник настенный внутренний", query, modified);
}

View File

@ -0,0 +1,22 @@
namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings;
public class ThreadElbowWallExternal : DrinkingWaterHeatingFitting
{
protected override string _title => "Угольник настенный с наружной резьбой";
protected override string? BuildRhSolutionsName(string query)
{
var diameterMatch = _diameter.Match(query);
if (!diameterMatch.Success)
{
return null;
}
var threadMatch = _thread.Match(query);
if (!threadMatch.Success)
{
return null;
}
string diameter = diameterMatch.Groups["Diameter"].Value;
string thread = threadMatch.Groups["Thread"].Value;
return $"{_title} {diameter}-R {thread}";
}
}

View File

@ -0,0 +1,26 @@
using System.Text.RegularExpressions;
namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings;
public class ThreadElbowWallInternal : DrinkingWaterHeatingFitting
{
protected override string _title => "Угольник настенный внутр. резьба";
private Regex _type = new(@"([\b\W])(?<Type>длин)([\b\w\.\s])");
protected override string? BuildRhSolutionsName(string query)
{
var diameterMatch = _diameter.Match(query);
if (!diameterMatch.Success)
{
return null;
}
var threadMatch = _thread.Match(query);
if (!threadMatch.Success)
{
return null;
}
var typeMatch = _type.Match(query);
string diameter = diameterMatch.Groups["Diameter"].Value;
string thread = threadMatch.Groups["Thread"].Value;
return $"{_title} {(typeMatch.Success ? "длинный " : string.Empty)}{diameter}-Rp {thread}";
}
}

View File

@ -27,6 +27,10 @@ public class ProductQueryModifierFactory
return new ThreadElbowExternal();
case "Угольник с внутренней резьбой":
return new ThreadElbowInternal();
case "Угольник настенный наружный":
return new ThreadElbowWallExternal();
case "Угольник настенный внутренний":
return new ThreadElbowWallInternal();
case "Угольник с накидной гайкой":
return new ScrewcapElbow();
case "Муфта соединительная":