Add bend formers
This commit is contained in:
parent
f7a0febddb
commit
52543cf7a2
@ -47,4 +47,10 @@ public class RautitanFittingsTests : ProductQueryModifierTests
|
|||||||
[TestCase("Тройник RAUTITAN RX+ с наружной резьбой 20-20-R 3/4", "Тройник RAUTITAN с наружной резьбой 20-20-R 3/4")]
|
[TestCase("Тройник RAUTITAN RX+ с наружной резьбой 20-20-R 3/4", "Тройник RAUTITAN с наружной резьбой 20-20-R 3/4")]
|
||||||
public void ThreadTPieceExternalTest(string query, string modified)
|
public void ThreadTPieceExternalTest(string query, string modified)
|
||||||
=> Execute(productType: "Тройник RAUTITAN резьбовой наружный", query, modified);
|
=> Execute(productType: "Тройник RAUTITAN резьбовой наружный", query, modified);
|
||||||
|
|
||||||
|
[TestCase("Фиксатор поворота трубы 16/17/90°, без колец (оцинк. сталь)", "Фиксатор поворота без колец 16/17/90°")]
|
||||||
|
[TestCase("Дуга 90° 25", "Фиксатор поворота без колец 25/90°")]
|
||||||
|
[TestCase("Дуга 90° r/d >= 2.5. Ø25 (767025)", "Фиксатор поворота без колец 25/90°")]
|
||||||
|
public void BendFormerHeatingTest(string query, string modified)
|
||||||
|
=> Execute(productType: "Фиксатор поворота без колец", query, modified);
|
||||||
}
|
}
|
||||||
|
@ -4,10 +4,12 @@ using Microsoft.AspNetCore.Http.Extensions;
|
|||||||
|
|
||||||
namespace RhSolutions.QueryModifiers
|
namespace RhSolutions.QueryModifiers
|
||||||
{
|
{
|
||||||
public class ElbowModifier : IProductQueryModifier
|
public class ElbowModifier : IProductQueryModifier
|
||||||
{
|
{
|
||||||
private string diameterPattern { get; } = @"\b(16|20|25|32|40|50|63)\b";
|
private string diameterPattern { get; } = @"([\b\D]|^)(?<Diameter>16|20|25|32|40|50|63)([\b\D]|$)";
|
||||||
private string anglePattern { get; } = @"\b(45|90)";
|
private string anglePattern { get; } = @"([\b\D]|^)(?<Angle>45|90)([\b\D]|$)";
|
||||||
|
|
||||||
|
protected virtual string name {get;} = "Угольник RAUTITAN -PLATINUM";
|
||||||
public bool TryQueryModify(IQueryCollection collection, out QueryString queryString)
|
public bool TryQueryModify(IQueryCollection collection, out QueryString queryString)
|
||||||
{
|
{
|
||||||
queryString = QueryString.Empty;
|
queryString = QueryString.Empty;
|
||||||
@ -22,7 +24,7 @@ namespace RhSolutions.QueryModifiers
|
|||||||
var angle = Regex.Match(query, anglePattern);
|
var angle = Regex.Match(query, anglePattern);
|
||||||
QueryBuilder qb = new()
|
QueryBuilder qb = new()
|
||||||
{
|
{
|
||||||
{"query", $"Угольник RAUTITAN -PLATINUM {(angle.Success ? angle.Captures.First() : 90)} {diameter.Captures.First()}"}
|
{"query", CreateName(angle, diameter)}
|
||||||
};
|
};
|
||||||
queryString = qb.ToQueryString();
|
queryString = qb.ToQueryString();
|
||||||
return true;
|
return true;
|
||||||
@ -32,5 +34,19 @@ namespace RhSolutions.QueryModifiers
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected virtual string CreateName(Match angle, Match diameter)
|
||||||
|
{
|
||||||
|
return $"{name} {(angle.Success ? angle.Groups["Angle"].Captures.First() : 90)} {diameter.Groups["Diameter"].Captures.First()}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class BendFormerHeating : ElbowModifier
|
||||||
|
{
|
||||||
|
protected override string name => "Фиксатор поворота без колец";
|
||||||
|
protected override string CreateName(Match angle, Match diameter)
|
||||||
|
{
|
||||||
|
return $"{name} {(diameter.Groups["Diameter"].Captures.First().ToString() == "16" ? "16/17" : diameter.Groups["Diameter"].Captures.First())}/{(angle.Success ? angle.Groups["Angle"].Captures.First() : 90)}°";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
namespace RhSolutions.QueryModifiers;
|
using RhSolutions.QueryModifiers.Heating;
|
||||||
|
|
||||||
|
namespace RhSolutions.QueryModifiers;
|
||||||
|
|
||||||
public class ProductQueryModifierFactory
|
public class ProductQueryModifierFactory
|
||||||
{
|
{
|
||||||
@ -32,6 +34,8 @@ public class ProductQueryModifierFactory
|
|||||||
return new CouplingModifier();
|
return new CouplingModifier();
|
||||||
case "Угольник RAUTITAN":
|
case "Угольник RAUTITAN":
|
||||||
return new ElbowModifier();
|
return new ElbowModifier();
|
||||||
|
case "Фиксатор поворота без колец":
|
||||||
|
return new BendFormerHeating();
|
||||||
case "Flex":
|
case "Flex":
|
||||||
return new FlexPipeQueryModifier();
|
return new FlexPipeQueryModifier();
|
||||||
case "Pink":
|
case "Pink":
|
||||||
|
Loading…
Reference in New Issue
Block a user