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")]
|
||||
public void ThreadTPieceExternalTest(string query, string 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
|
||||
{
|
||||
public class ElbowModifier : IProductQueryModifier
|
||||
public class ElbowModifier : IProductQueryModifier
|
||||
{
|
||||
private string diameterPattern { get; } = @"\b(16|20|25|32|40|50|63)\b";
|
||||
private string anglePattern { get; } = @"\b(45|90)";
|
||||
private string diameterPattern { get; } = @"([\b\D]|^)(?<Diameter>16|20|25|32|40|50|63)([\b\D]|$)";
|
||||
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)
|
||||
{
|
||||
queryString = QueryString.Empty;
|
||||
@ -22,7 +24,7 @@ namespace RhSolutions.QueryModifiers
|
||||
var angle = Regex.Match(query, anglePattern);
|
||||
QueryBuilder qb = new()
|
||||
{
|
||||
{"query", $"Угольник RAUTITAN -PLATINUM {(angle.Success ? angle.Captures.First() : 90)} {diameter.Captures.First()}"}
|
||||
{"query", CreateName(angle, diameter)}
|
||||
};
|
||||
queryString = qb.ToQueryString();
|
||||
return true;
|
||||
@ -32,5 +34,19 @@ namespace RhSolutions.QueryModifiers
|
||||
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
|
||||
{
|
||||
@ -32,6 +34,8 @@ public class ProductQueryModifierFactory
|
||||
return new CouplingModifier();
|
||||
case "Угольник RAUTITAN":
|
||||
return new ElbowModifier();
|
||||
case "Фиксатор поворота без колец":
|
||||
return new BendFormerHeating();
|
||||
case "Flex":
|
||||
return new FlexPipeQueryModifier();
|
||||
case "Pink":
|
||||
|
Loading…
Reference in New Issue
Block a user