From 1001c683bf9f845a747099de6c2b9e0d5b0b2fb9 Mon Sep 17 00:00:00 2001 From: Serghei Cebotari Date: Tue, 3 Oct 2023 22:30:01 +0300 Subject: [PATCH] Add thread elbows modifiers --- RhSolutions.Api.Tests/RautitanFittingsTests.cs | 8 ++++++++ RhSolutions.Api/Services/AdapterModifier.cs | 2 +- RhSolutions.Api/Services/ProductQueryModifierFactory.cs | 4 ++++ RhSolutions.Api/Services/ThreadElbowExternal.cs | 7 +++++++ RhSolutions.Api/Services/ThreadElbowInternal.cs | 7 +++++++ 5 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 RhSolutions.Api/Services/ThreadElbowExternal.cs create mode 100644 RhSolutions.Api/Services/ThreadElbowInternal.cs diff --git a/RhSolutions.Api.Tests/RautitanFittingsTests.cs b/RhSolutions.Api.Tests/RautitanFittingsTests.cs index 51184ed..d97ba4a 100644 --- a/RhSolutions.Api.Tests/RautitanFittingsTests.cs +++ b/RhSolutions.Api.Tests/RautitanFittingsTests.cs @@ -20,4 +20,12 @@ public class RautitanFittingsTests : ProductQueryModifierTests [TestCase("Угольник 90°, 40 PX", "Угольник RAUTITAN -PLATINUM 90 40")] public void ElbowTest(string query, string modified) => Execute(productType: "Угольник RAUTITAN", query, modified); + + [TestCase("Уголок соединительный с ниппелем 20 х 1/2'', бронза", "Угольник-переходник с наружной резьбой 20 1/2")] + public void ThreadElbowExternalTest(string query, string modified) + => Execute(productType: "Угольник с наружной резьбой", query, modified); + + [TestCase("Уголок соединительный с муфтой 16 х 1/2\", бронза", "Угольник-переходник с внутренней резьбой 16 1/2")] + public void ThreadElbowInternalTest(string query, string modified) + => Execute(productType: "Угольник с внутренней резьбой", query, modified); } \ No newline at end of file diff --git a/RhSolutions.Api/Services/AdapterModifier.cs b/RhSolutions.Api/Services/AdapterModifier.cs index ac4be85..bf5b2fa 100644 --- a/RhSolutions.Api/Services/AdapterModifier.cs +++ b/RhSolutions.Api/Services/AdapterModifier.cs @@ -4,7 +4,7 @@ using Microsoft.AspNetCore.Http.Extensions; namespace RhSolutions.Api.Services { - public abstract class AdapterModifier : IProductQueryModifier + public abstract class AdapterModifier : IProductQueryModifier { protected string pattern { get; } = @"(?\b16|20|25|32|40|50|63\b)\D+(?\b1\s+1/4|1\s+1/2|1/2|3/4|2|1\b)"; diff --git a/RhSolutions.Api/Services/ProductQueryModifierFactory.cs b/RhSolutions.Api/Services/ProductQueryModifierFactory.cs index f6f2222..6464709 100644 --- a/RhSolutions.Api/Services/ProductQueryModifierFactory.cs +++ b/RhSolutions.Api/Services/ProductQueryModifierFactory.cs @@ -16,6 +16,10 @@ public class ProductQueryModifierFactory return new AdapterInternalModifier(); case "Переходник с накидной гайкой": return new AdapterScrewcapModifier(); + case "Угольник с наружной резьбой": + return new ThreadElbowExternal(); + case "Угольник с внутренней резьбой": + return new ThreadElbowInternal(); case "Муфта соединительная": return new CouplingModifier(); case "Угольник RAUTITAN": diff --git a/RhSolutions.Api/Services/ThreadElbowExternal.cs b/RhSolutions.Api/Services/ThreadElbowExternal.cs new file mode 100644 index 0000000..8a9dbc4 --- /dev/null +++ b/RhSolutions.Api/Services/ThreadElbowExternal.cs @@ -0,0 +1,7 @@ +namespace RhSolutions.Api.Services +{ + public class ThreadElbowExternal : AdapterModifier + { + protected override string name => "Угольник-переходник с наружной резьбой"; + } +} diff --git a/RhSolutions.Api/Services/ThreadElbowInternal.cs b/RhSolutions.Api/Services/ThreadElbowInternal.cs new file mode 100644 index 0000000..9ee3450 --- /dev/null +++ b/RhSolutions.Api/Services/ThreadElbowInternal.cs @@ -0,0 +1,7 @@ +namespace RhSolutions.Api.Services +{ + public class ThreadElbowInternal : AdapterModifier + { + protected override string name => "Угольник-переходник с внутренней резьбой"; + } +}