0
0

Fix coupling modifier

This commit is contained in:
Serghei Cebotari 2023-10-09 22:12:53 +03:00
parent 8252e962db
commit 942c60beea
2 changed files with 5 additions and 4 deletions

View File

@ -14,6 +14,7 @@ public class RautitanFittingsTests : ProductQueryModifierTests
[TestCase("муфта 20", "Муфта соединительная равнопроходная 20")] [TestCase("муфта 20", "Муфта соединительная равнопроходная 20")]
[TestCase("переходник 20-16", "Муфта соединительная переходная 20-16")] [TestCase("переходник 20-16", "Муфта соединительная переходная 20-16")]
[TestCase("Соединение труба-труба 20/20, бронза", "Муфта соединительная равнопроходная 20")] [TestCase("Соединение труба-труба 20/20, бронза", "Муфта соединительная равнопроходная 20")]
[TestCase("Муфта соединительная переходная 20x16 для труб из сшитого полиэтилена аксиальный", "Муфта соединительная переходная 20-16")]
public void CouplingTest(string query, string modified) public void CouplingTest(string query, string modified)
=> Execute(productType: "Муфта соединительная", query, modified); => Execute(productType: "Муфта соединительная", query, modified);

View File

@ -6,7 +6,7 @@ namespace RhSolutions.Api.Services
{ {
public class CouplingModifier : IProductQueryModifier 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) public bool TryQueryModify(IQueryCollection collection, out QueryString queryString)
{ {
queryString = QueryString.Empty; queryString = QueryString.Empty;
@ -23,13 +23,13 @@ namespace RhSolutions.Api.Services
else else
{ {
QueryBuilder qb = new(); 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 else
{ {
qb.Add("query", $"Муфта соединительная переходная {matches[0]}-{matches[1]}"); qb.Add("query", $"Муфта соединительная переходная {matches[0].Groups["Diameter"].Value}-{matches[1].Groups["Diameter"].Value}");
} }
queryString = qb.ToQueryString(); queryString = qb.ToQueryString();
return true; return true;