diff --git a/RhSolutions.Api.Tests/RautitanFittingsTests.cs b/RhSolutions.Api.Tests/RautitanFittingsTests.cs index 53c288c..b86a5fb 100644 --- a/RhSolutions.Api.Tests/RautitanFittingsTests.cs +++ b/RhSolutions.Api.Tests/RautitanFittingsTests.cs @@ -95,4 +95,28 @@ public class RautitanFittingsTests : ProductQueryModifierTests [TestCase("Заглушка, 16, латунь", "Заглушка для полимерн. трубы 16")] public void DummyPlugTest(string query, string modified) => Execute(productType: "Заглушка труб RAUTITAN", query, modified); + + [TestCase("Концовка разб. 3/4'' (еврок) для универс. трубы 16", "Резьбозажимное соединение flex/pink 16х2,2xG3/4")] + [TestCase("Переходник компрессионный PEX 20х2.8-G 3/4\" Евроконус", "Резьбозажимное соединение flex/pink 20х2,8xG3/4")] + [TestCase("Резьбозажимное соединение flex/pink 20х2,8xG3/4", "Резьбозажимное соединение flex/pink 20х2,8xG3/4")] + public void EuroconeFlexTest(string query, string modified) + => Execute(productType: "Резьбозажимное flex", query, modified); + + [TestCase("Резьбозажимное соединение stabil 16,2x2,6xG3/4", "Резьбозажимное соединение stabil 16,2x2,6xG3/4")] + [TestCase("Резьбозажимное соединение stabil 20x2,9xG3/4", "Резьбозажимное соединение stabil 20x2,9xG3/4")] + [TestCase("Концовка разб.3/4''(еврок.) для PE-Xc и PE-MDXс 16", "Резьбозажимное соединение stabil 16,2x2,6xG3/4")] + public void EuroconeStabilTest(string query, string modified) + => Execute(productType: "Резьбозажимное stabil", query, modified); + + [TestCase("Переходник на евроконус 16-G 3/4", "Переходник на евроконус 16-G 3/4")] + [TestCase("Соед.прям. с вн.резьбой (н.гайка, еврок.) 16 ник.", "Переходник на евроконус 16-G 3/4")] + [TestCase("Переходник с накидной гайкой 16x2.2 -G 3/4\" Евроконус, c гильзой в комплекте", "Переходник на евроконус 16-G 3/4")] + public void EuroconeAdapterTest(string query, string modified) + => Execute(productType: "Переходник на евроконус", query, modified); + + [TestCase("Резьбозажимное соединение для металлической трубки G 3/4 -15", "Резьбозажимное соединение для металлической трубки G 3/4 -15")] + [TestCase("Концовка для монтажной трубы 15 х 1/2''", "Резьбозажимное соединение для металлической трубки G 3/4 -15")] + [TestCase("Фитинг подключения L и T-образной медной трубки - D15 - G 3/4", "Резьбозажимное соединение для металлической трубки G 3/4 -15")] + public void EuroconeConnectionBendTest(string query, string modified) + => Execute(productType: "Резьбозажимное для трубки", query, modified); } diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Eurocone.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Eurocone.cs new file mode 100644 index 0000000..a658c17 --- /dev/null +++ b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Eurocone.cs @@ -0,0 +1,21 @@ +namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; + +public abstract class Eurocone : DrinkingWaterHeatingFitting +{ + protected virtual Dictionary _titles { get; } = new(); + + protected override string? BuildRhSolutionsName(string query) + { + var diameterMatch = _diameter.Match(query); + if (diameterMatch.Success) + { + string diameter = diameterMatch.Groups["Diameter"].Value; + if (_titles.TryGetValue(diameter, out string? title)) + { + return title; + } + else return null; + } + return null; + } +} diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs new file mode 100644 index 0000000..120ba32 --- /dev/null +++ b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs @@ -0,0 +1,16 @@ +namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; + +public class EuroconeAdapter : DrinkingWaterHeatingFitting +{ + protected override string _title => "Переходник на евроконус"; + protected override string? BuildRhSolutionsName(string query) + { + var diameterMatch = _diameter.Match(query); + if (diameterMatch.Success) + { + string diameter = diameterMatch.Groups["Diameter"].Value; + return $"{_title} {diameter}-G 3/4"; + } + return null; + } +} \ No newline at end of file diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs new file mode 100644 index 0000000..7f7cee3 --- /dev/null +++ b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs @@ -0,0 +1,9 @@ +namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; + +public class EuroconeConnectionBend : DrinkingWaterHeatingFitting +{ + protected override string? BuildRhSolutionsName(string query) + { + return "Резьбозажимное соединение для металлической трубки G 3/4 -15"; + } +} \ No newline at end of file diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs new file mode 100644 index 0000000..382e775 --- /dev/null +++ b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs @@ -0,0 +1,10 @@ +namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; + +public class EuroconeFlex : Eurocone +{ + protected override Dictionary _titles => new() + { + ["16"] = "Резьбозажимное соединение flex/pink 16х2,2xG3/4", + ["20"] = "Резьбозажимное соединение flex/pink 20х2,8xG3/4" + }; +} diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeStabil.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeStabil.cs new file mode 100644 index 0000000..bc7c34d --- /dev/null +++ b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeStabil.cs @@ -0,0 +1,10 @@ +namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; + +public class EuroconeStabil : Eurocone +{ + protected override Dictionary _titles => new() + { + ["16"] = "Резьбозажимное соединение stabil 16,2x2,6xG3/4", + ["20"] = "Резьбозажимное соединение stabil 20x2,9xG3/4" + }; +} \ No newline at end of file diff --git a/RhSolutions.QueryModifiers/ProductQueryModifierFactory.cs b/RhSolutions.QueryModifiers/ProductQueryModifierFactory.cs index 2459ad7..6c7292d 100644 --- a/RhSolutions.QueryModifiers/ProductQueryModifierFactory.cs +++ b/RhSolutions.QueryModifiers/ProductQueryModifierFactory.cs @@ -49,6 +49,14 @@ public class ProductQueryModifierFactory return new ConnectionBend(); case "Трубка Т-образная": return new ConnectionTee(); + case "Резьбозажимное flex": + return new EuroconeFlex(); + case "Резьбозажимное stabil": + return new EuroconeStabil(); + case "Переходник на евроконус": + return new EuroconeAdapter(); + case "Резьбозажимное для трубки": + return new EuroconeConnectionBend(); case "Заглушка труб RAUTITAN": return new DummyPlug(); case "Flex":