diff --git a/RhSolutions.Api.Tests/RautitanFittingsTests.cs b/RhSolutions.Api.Tests/RautitanFittingsTests.cs index b86a5fb..af645ca 100644 --- a/RhSolutions.Api.Tests/RautitanFittingsTests.cs +++ b/RhSolutions.Api.Tests/RautitanFittingsTests.cs @@ -4,6 +4,7 @@ public class RautitanFittingsTests : ProductQueryModifierTests { [TestCase("Гильза 16", "Монтажная гильза 16")] [TestCase("Пресс-втулка 20", "Монтажная гильза 20")] + [TestCase("UPONOR Q&E EVOLUTION КОЛЬЦО БЕЛОЕ 16 '900Ф", "Монтажная гильза 16")] public void SleeveTest(string query, string modified) => Execute(productType: "Монтажная гильза", query, modified); @@ -19,6 +20,7 @@ public class RautitanFittingsTests : ProductQueryModifierTests [TestCase("муфта 20", "Муфта соединительная равнопроходная 20")] [TestCase("переходник 20-16", "Муфта соединительная переходная 20-16")] + [TestCase("переходник 16-20", "Муфта соединительная переходная 20-16")] [TestCase("Соединение труба-труба 20/20, бронза", "Муфта соединительная равнопроходная 20")] [TestCase("Муфта соединительная переходная 20x16 для труб из сшитого полиэтилена аксиальный", "Муфта соединительная переходная 20-16")] public void CouplingTest(string query, string modified) diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Coupling.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Coupling.cs index 4605308..a418621 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Coupling.cs +++ b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Coupling.cs @@ -5,19 +5,22 @@ public class Coupling : DrinkingWaterHeatingFitting protected override string _title => "Муфта соединительная"; protected override string? BuildRhSolutionsName(string query) { - var diameters = _diameter.Matches(query); - if (diameters.Count == 0) + var diametersMatches = _diameter.Matches(query); + if (diametersMatches.Count == 0) { return null; } - if (diameters.Count < 2 || - diameters.Count > 1 && diameters[0].Groups["Diameter"].Value == diameters[1].Groups["Diameter"].Value) + var diameters = diametersMatches.Select(x => x.Groups["Diameter"].Value) + .Take(2) + .OrderByDescending(x => int.Parse(x)) + .ToArray(); + if (diameters.Length == 1 || diameters[0] == diameters[1]) { - return $"{_title} равнопроходная {diameters[0].Groups["Diameter"]}"; + return $"{_title} равнопроходная {diameters[0]}"; } else { - return $"{_title} переходная {diameters[0].Groups["Diameter"]}-{diameters[1].Groups["Diameter"]}"; + return $"{_title} переходная {diameters[0]}-{diameters[1]}"; } } }