summaryrefslogtreecommitdiff
path: root/RhSolutions.QueryModifiers/ElbowModifier.cs
diff options
context:
space:
mode:
authorSerghei Cebotari <serghei@cebotari.ru>2023-10-11 22:35:39 +0300
committerSerghei Cebotari <serghei@cebotari.ru>2023-10-11 22:35:39 +0300
commit52543cf7a2ec972923f5d3618dd77b366a73c92a (patch)
tree92584b093b1c0f213aecfd87e3e0fb2f35ec17ab /RhSolutions.QueryModifiers/ElbowModifier.cs
parentf7a0febddb5aaf98d27d5f5679e302437bf7db77 (diff)
Add bend formers
Diffstat (limited to 'RhSolutions.QueryModifiers/ElbowModifier.cs')
-rw-r--r--RhSolutions.QueryModifiers/ElbowModifier.cs24
1 files changed, 20 insertions, 4 deletions
diff --git a/RhSolutions.QueryModifiers/ElbowModifier.cs b/RhSolutions.QueryModifiers/ElbowModifier.cs
index 05ca9b4..571fac8 100644
--- a/RhSolutions.QueryModifiers/ElbowModifier.cs
+++ b/RhSolutions.QueryModifiers/ElbowModifier.cs
@@ -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)}°";
+ }
}
}