diff options
author | Serghei Cebotari <serghei@cebotari.ru> | 2023-10-13 15:04:27 +0300 |
---|---|---|
committer | Serghei Cebotari <serghei@cebotari.ru> | 2023-10-13 15:04:27 +0300 |
commit | 60fbfb5e8c27f504aa9971828ac785052a6d0822 (patch) | |
tree | f1350cc4c8b15fa4c49bfe0876c6f7e7d79ae3c7 /RhSolutions.QueryModifiers/PipeQueryModifier.cs | |
parent | 52543cf7a2ec972923f5d3618dd77b366a73c92a (diff) |
Refactoring
Diffstat (limited to 'RhSolutions.QueryModifiers/PipeQueryModifier.cs')
-rw-r--r-- | RhSolutions.QueryModifiers/PipeQueryModifier.cs | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/RhSolutions.QueryModifiers/PipeQueryModifier.cs b/RhSolutions.QueryModifiers/PipeQueryModifier.cs deleted file mode 100644 index 2126c55..0000000 --- a/RhSolutions.QueryModifiers/PipeQueryModifier.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System.Text.RegularExpressions; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Http.Extensions; - -namespace RhSolutions.QueryModifiers; - -public class PipeQueryModifier : IProductQueryModifier -{ - protected virtual string diameterPattern { get; } = @"([\b\D]|^)(?<Diameter>16|20|25|32|40|50|63)([\b\D]|$)"; - protected virtual string typePattern { get; } = @"бухт|отр|штанг"; - protected virtual string pipeName { get; } = "Flex"; - protected virtual Dictionary<string, string> diameterNames { get; } = new() - { - ["16"] = "16x2,2", - ["20"] = "20x2,8", - ["25"] = "25x3,5", - ["32"] = "32x4,4", - ["40"] = "40x5,5", - ["50"] = "50x6,9", - ["63"] = "63x8,6" - }; - - protected virtual Dictionary<string, string> makeUpNames { get; } = new() - { - ["бухт"] = "бухта", - ["штанг"] = "прям.отрезки", - ["отр"] = "прям.отрезки" - }; - - public bool TryQueryModify(IQueryCollection collection, out QueryString queryString) - { - queryString = QueryString.Empty; - string query = collection["query"].ToString(); - if (string.IsNullOrEmpty(query)) - { - return false; - } - - var diameterMatches = Regex.Matches(query, diameterPattern); - if (diameterMatches.Count == 0) - { - return false; - } - - var typeMatches = Regex.Matches(query, typePattern); - var diameter = diameterMatches.First().Groups["Diameter"].Value; - string? type = typeMatches.FirstOrDefault()?.Value; - - string result = - $"Труба {pipeName} {diameterNames[diameter]} {(type != null ? makeUpNames[type] : int.Parse(diameter) < 32 ? makeUpNames["бухт"] : makeUpNames["отр"])}"; - - QueryBuilder qb = new() - { - { "query", result } - }; - queryString = qb.ToQueryString(); - return true; - } -} |