diff options
author | Serghei Cebotari <serghei@cebotari.ru> | 2023-10-11 22:35:39 +0300 |
---|---|---|
committer | Serghei Cebotari <serghei@cebotari.ru> | 2023-10-11 22:35:39 +0300 |
commit | 52543cf7a2ec972923f5d3618dd77b366a73c92a (patch) | |
tree | 92584b093b1c0f213aecfd87e3e0fb2f35ec17ab /RhSolutions.QueryModifiers/ElbowModifier.cs | |
parent | f7a0febddb5aaf98d27d5f5679e302437bf7db77 (diff) |
Add bend formers
Diffstat (limited to 'RhSolutions.QueryModifiers/ElbowModifier.cs')
-rw-r--r-- | RhSolutions.QueryModifiers/ElbowModifier.cs | 24 |
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)}°"; + } } } |