From 942c60beeac8b89643dc66235db62d4c8f739a0a Mon Sep 17 00:00:00 2001 From: Serghei Cebotari Date: Mon, 9 Oct 2023 22:12:53 +0300 Subject: [PATCH] Fix coupling modifier --- RhSolutions.Api.Tests/RautitanFittingsTests.cs | 1 + RhSolutions.Api/Services/CouplingModifier.cs | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/RhSolutions.Api.Tests/RautitanFittingsTests.cs b/RhSolutions.Api.Tests/RautitanFittingsTests.cs index f00e2bd..0233fad 100644 --- a/RhSolutions.Api.Tests/RautitanFittingsTests.cs +++ b/RhSolutions.Api.Tests/RautitanFittingsTests.cs @@ -14,6 +14,7 @@ public class RautitanFittingsTests : ProductQueryModifierTests [TestCase("муфта 20", "Муфта соединительная равнопроходная 20")] [TestCase("переходник 20-16", "Муфта соединительная переходная 20-16")] [TestCase("Соединение труба-труба 20/20, бронза", "Муфта соединительная равнопроходная 20")] + [TestCase("Муфта соединительная переходная 20x16 для труб из сшитого полиэтилена аксиальный", "Муфта соединительная переходная 20-16")] public void CouplingTest(string query, string modified) => Execute(productType: "Муфта соединительная", query, modified); diff --git a/RhSolutions.Api/Services/CouplingModifier.cs b/RhSolutions.Api/Services/CouplingModifier.cs index e7be2fb..4abf440 100644 --- a/RhSolutions.Api/Services/CouplingModifier.cs +++ b/RhSolutions.Api/Services/CouplingModifier.cs @@ -6,7 +6,7 @@ namespace RhSolutions.Api.Services { public class CouplingModifier : IProductQueryModifier { - private string pattern { get; } = @"\b(16|20|25|32|40|50|63)\b"; + private string pattern { get; } = @"([\b\D]|^)?(?16|20|25|32|40|50|63)([\b\D]|$)?"; public bool TryQueryModify(IQueryCollection collection, out QueryString queryString) { queryString = QueryString.Empty; @@ -23,13 +23,13 @@ namespace RhSolutions.Api.Services else { QueryBuilder qb = new(); - if (matches.Count < 2 || matches.Count > 1 && matches[0].Value == matches[1].Value) + if (matches.Count < 2 || matches.Count > 1 && matches[0].Groups["Diameter"].Value == matches[1].Groups["Diameter"].Value) { - qb.Add("query", $"Муфта соединительная равнопроходная {matches[0]}"); + qb.Add("query", $"Муфта соединительная равнопроходная {matches[0].Groups["Diameter"].Value}"); } else { - qb.Add("query", $"Муфта соединительная переходная {matches[0]}-{matches[1]}"); + qb.Add("query", $"Муфта соединительная переходная {matches[0].Groups["Diameter"].Value}-{matches[1].Groups["Diameter"].Value}"); } queryString = qb.ToQueryString(); return true;