summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--RhSolutions.Api.Tests/RautitanFittingsTests.cs1
-rw-r--r--RhSolutions.Api/Services/CouplingModifier.cs8
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]|^)?(?<Diameter>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;