From fb0fcda84cefc79a19d8cfcb784f78abc7b61ffb Mon Sep 17 00:00:00 2001 From: Serghei Cebotari Date: Sat, 30 Dec 2023 14:43:25 +0300 Subject: Implement KeyedServices --- RhSolutions.QueryModifiers/BypassQueryModifier.cs | 10 --- .../DrinkingWaterHeatingFittings/Elbow.cs | 21 ++++++ .../DrinkingWaterHeatingFittings/ElbowModifier.cs | 21 ------ .../ProductQueryModifierFactory.cs | 76 ---------------------- 4 files changed, 21 insertions(+), 107 deletions(-) delete mode 100644 RhSolutions.QueryModifiers/BypassQueryModifier.cs create mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Elbow.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ElbowModifier.cs delete mode 100644 RhSolutions.QueryModifiers/ProductQueryModifierFactory.cs (limited to 'RhSolutions.QueryModifiers') diff --git a/RhSolutions.QueryModifiers/BypassQueryModifier.cs b/RhSolutions.QueryModifiers/BypassQueryModifier.cs deleted file mode 100644 index a8bba7e..0000000 --- a/RhSolutions.QueryModifiers/BypassQueryModifier.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace RhSolutions.QueryModifiers; - -public sealed class BypassQueryModifier : IProductQueryModifier -{ - public bool TryQueryModify(string query, out string queryModified) - { - queryModified = string.Empty; - return false; - } -} \ No newline at end of file diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Elbow.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Elbow.cs new file mode 100644 index 0000000..ff6a265 --- /dev/null +++ b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Elbow.cs @@ -0,0 +1,21 @@ +namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; + +public class Elbow : DrinkingWaterHeatingFitting +{ + protected override string _title { get; } = "Угольник RAUTITAN -PLATINUM"; + + public override bool TryQueryModify(string input, out string output) + { + output = string.Empty; + var diameterMatch = _diameter.Match(input); + if (!diameterMatch.Success) + { + return false; + } + string diameter = diameterMatch.Groups["Diameter"].Value; + var angleMatch = _angle.Match(input); + string angle = angleMatch.Success ? angleMatch.Groups["Angle"].Value : "90"; + output = $"{_title} {angle} {diameter}"; + return true; + } +} diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ElbowModifier.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ElbowModifier.cs deleted file mode 100644 index a85b0d8..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ElbowModifier.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class ElbowModifier : DrinkingWaterHeatingFitting -{ - protected override string _title { get; } = "Угольник RAUTITAN -PLATINUM"; - - public override bool TryQueryModify(string input, out string output) - { - output = string.Empty; - var diameterMatch = _diameter.Match(input); - if (!diameterMatch.Success) - { - return false; - } - string diameter = diameterMatch.Groups["Diameter"].Value; - var angleMatch = _angle.Match(input); - string angle = angleMatch.Success ? angleMatch.Groups["Angle"].Value : "90"; - output = $"{_title} {angle} {diameter}"; - return true; - } -} diff --git a/RhSolutions.QueryModifiers/ProductQueryModifierFactory.cs b/RhSolutions.QueryModifiers/ProductQueryModifierFactory.cs deleted file mode 100644 index 12b99c8..0000000 --- a/RhSolutions.QueryModifiers/ProductQueryModifierFactory.cs +++ /dev/null @@ -1,76 +0,0 @@ -using RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; -using RhSolutions.QueryModifiers.DrinkingWaterHeatingPipes; - -namespace RhSolutions.QueryModifiers; - -public class ProductQueryModifierFactory -{ - public IProductQueryModifier GetModifier(string productTypeName) - { - switch (productTypeName) - { - case "Монтажная гильза": - return new Sleeve(); - case "Желоб": - return new SupportingClip(); - case "Тройник RAUTITAN": - return new TPiece(); - case "Тройник RAUTITAN резьбовой наружный": - return new ThreadTPieceExternal(); - case "Тройник RAUTITAN резьбовой внутренний": - return new ThreadTPieceInternal(); - case "Переходник на наружную резьбу": - return new AdapterExternal(); - case "Переходник на внутреннюю резьбу": - return new AdapterInternal(); - case "Переходник с накидной гайкой": - return new AdapterScrewcap(); - case "Угольник с наружной резьбой": - return new ThreadElbowExternal(); - case "Угольник с внутренней резьбой": - return new ThreadElbowInternal(); - case "Угольник настенный наружный": - return new ThreadElbowWallExternal(); - case "Угольник настенный внутренний": - return new ThreadElbowWallInternal(); - case "Проточный настенный угольник": - return new ThreadElbowDoubleWallInternal(); - case "Угольник с накидной гайкой": - return new ScrewcapElbow(); - case "Муфта соединительная": - return new Coupling(); - case "Угольник RAUTITAN": - return new ElbowModifier(); - case "Фиксатор поворота отопление": - return new BendFormerHeating(); - case "Фиксатор поворота водоснабжение": - return new BendFormerSanitary(); - case "Трубка Г-образная": - 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 "Ниппель": - return new Nippel(); - case "Заглушка труб RAUTITAN": - return new DummyPlug(); - case "Flex": - return new FlexPipe(); - case "Pink": - return new PinkPipe(); - case "Stabil": - return new StabilPipe(); - case "Black": - return new BlackPipe(); - default: - return new BypassQueryModifier(); - } - } -} -- cgit v1.2.3