From a0a1c23c4d313d7c78b7cc6b7d6a108c3dad04ca Mon Sep 17 00:00:00 2001 From: Serghei Cebotari Date: Fri, 26 Jan 2024 15:50:41 +0300 Subject: [PATCH] Add ML Modifiers with attribute --- RhSolutions.Api.Tests/BypassQueryModifier.cs | 2 +- .../ProductQueryModifierFactory.cs | 6 +-- ...ts.csproj => RhSolutions.Api.Tests.csproj} | 2 +- RhSolutions.Api.Tests/Usings.cs | 2 +- RhSolutions.Api.sln | 34 +++++++++++++++ RhSolutions.Api/Middleware/QueryModifier.cs | 6 +-- RhSolutions.Api/Program.cs | 41 +------------------ RhSolutions.Api/RhSolutions.Api.csproj | 8 ++-- .../DrinkingWaterHeatingFittings/Adapter.cs | 2 +- .../AdapterExternal.cs | 3 +- .../AdapterInternal.cs | 3 +- .../AdapterScrewcap.cs | 7 ++++ .../BendFormerHeating.cs | 3 +- .../BendFormerSanitary.cs | 3 +- .../ConnectionBend.cs | 5 ++- .../ConnectionTee.cs | 3 +- .../DrinkingWaterHeatingFittings/Coupling.cs | 3 +- .../DrinkingWaterHeatingFitting.cs | 4 +- .../DrinkingWaterHeatingFittings/DummyPlug.cs | 7 ++++ .../DrinkingWaterHeatingFittings/Elbow.cs | 3 +- .../DrinkingWaterHeatingFittings/Eurocone.cs | 2 +- .../EuroconeAdapter.cs | 3 +- .../EuroconeConnectionBend.cs | 3 +- .../EuroconeFlex.cs | 3 +- .../EuroconeStabil.cs | 3 +- .../DrinkingWaterHeatingFittings/Nippel.cs | 3 +- .../ScrewcapElbow.cs | 7 ++++ .../DrinkingWaterHeatingFittings/Sleeve.cs | 7 ++++ .../SupportingClip.cs | 3 +- .../DrinkingWaterHeatingFittings/TPiece.cs | 3 +- .../ThreadElbowDoubleWallInternal.cs | 3 +- .../ThreadElbowExternal.cs | 3 +- .../ThreadElbowInternal.cs | 7 ++++ .../ThreadElbowWallExternal.cs | 3 +- .../ThreadElbowWallInternal.cs | 3 +- .../ThreadTPieceExternal.cs | 3 +- .../ThreadTPieceInternal.cs | 3 +- .../DrinkingWaterHeatingPipes/BlackPipe.cs | 17 ++++++++ .../DrinkingWaterHeatingPipe.cs | 4 +- .../DrinkingWaterHeatingPipes/FlexPipe.cs | 7 ++++ .../DrinkingWaterHeatingPipes/PinkPipe.cs | 24 +++++++++++ .../DrinkingWaterHeatingPipes/StabilPipe.cs | 17 ++++++++ RhSolutions.MLModifiers/IProductMLModifier.cs | 6 +++ RhSolutions.MLModifiers/MLModifierKey.cs | 10 +++++ .../MLModifiersRegistration.cs | 25 +++++++++++ .../RhSolutions.MLModifiers.csproj | 0 .../AdapterScrewcap.cs | 6 --- .../DrinkingWaterHeatingFittings/DummyPlug.cs | 6 --- .../ScrewcapElbow.cs | 6 --- .../DrinkingWaterHeatingFittings/Sleeve.cs | 6 --- .../ThreadElbowInternal.cs | 6 --- .../DrinkingWaterHeatingPipes/BlackPipe.cs | 16 -------- .../DrinkingWaterHeatingPipes/FlexPipe.cs | 6 --- .../DrinkingWaterHeatingPipes/PinkPipe.cs | 23 ----------- .../DrinkingWaterHeatingPipes/StabilPipe.cs | 16 -------- .../IProductQueryModifier.cs | 6 --- RhSolutions.sln | 34 --------------- 57 files changed, 239 insertions(+), 211 deletions(-) rename RhSolutions.Api.Tests/{RhSolutions.QueryModifiers.Tests.csproj => RhSolutions.Api.Tests.csproj} (91%) create mode 100644 RhSolutions.Api.sln rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/Adapter.cs (87%) rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/AdapterExternal.cs (50%) rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/AdapterInternal.cs (56%) create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/AdapterScrewcap.cs rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/BendFormerHeating.cs (82%) rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/BendFormerSanitary.cs (80%) rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/ConnectionBend.cs (80%) rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/ConnectionTee.cs (51%) rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/Coupling.cs (85%) rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs (82%) create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/DummyPlug.cs rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/Elbow.cs (83%) rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/Eurocone.cs (88%) rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/EuroconeAdapter.cs (78%) rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs (68%) rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/EuroconeFlex.cs (70%) rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/EuroconeStabil.cs (70%) rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/Nippel.cs (71%) create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ScrewcapElbow.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Sleeve.cs rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/SupportingClip.cs (85%) rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/TPiece.cs (84%) rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/ThreadElbowDoubleWallInternal.cs (87%) rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/ThreadElbowExternal.cs (54%) create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowInternal.cs rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/ThreadElbowWallExternal.cs (82%) rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/ThreadElbowWallInternal.cs (85%) rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/ThreadTPieceExternal.cs (84%) rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingFittings/ThreadTPieceInternal.cs (89%) create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/BlackPipe.cs rename {RhSolutions.QueryModifiers => RhSolutions.MLModifiers}/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs (91%) create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/FlexPipe.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/PinkPipe.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/StabilPipe.cs create mode 100644 RhSolutions.MLModifiers/IProductMLModifier.cs create mode 100644 RhSolutions.MLModifiers/MLModifierKey.cs create mode 100644 RhSolutions.MLModifiers/MLModifiersRegistration.cs rename RhSolutions.QueryModifiers/RhSolutions.QueryModifiers.csproj => RhSolutions.MLModifiers/RhSolutions.MLModifiers.csproj (100%) delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/AdapterScrewcap.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/DummyPlug.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ScrewcapElbow.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Sleeve.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowInternal.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/BlackPipe.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/FlexPipe.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/PinkPipe.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/StabilPipe.cs delete mode 100644 RhSolutions.QueryModifiers/IProductQueryModifier.cs delete mode 100644 RhSolutions.sln diff --git a/RhSolutions.Api.Tests/BypassQueryModifier.cs b/RhSolutions.Api.Tests/BypassQueryModifier.cs index d6c8367..44159e2 100644 --- a/RhSolutions.Api.Tests/BypassQueryModifier.cs +++ b/RhSolutions.Api.Tests/BypassQueryModifier.cs @@ -1,6 +1,6 @@ namespace RhSolutions.Api.Tests; -public sealed class BypassQueryModifier : IProductQueryModifier +public sealed class BypassQueryModifier : IProductMLModifier { public bool TryQueryModify(string query, out string queryModified) { diff --git a/RhSolutions.Api.Tests/ProductQueryModifierFactory.cs b/RhSolutions.Api.Tests/ProductQueryModifierFactory.cs index da8ea09..d9a4d67 100644 --- a/RhSolutions.Api.Tests/ProductQueryModifierFactory.cs +++ b/RhSolutions.Api.Tests/ProductQueryModifierFactory.cs @@ -1,11 +1,11 @@ -using RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; -using RhSolutions.QueryModifiers.DrinkingWaterHeatingPipes; +using RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +using RhSolutions.MLModifiers.DrinkingWaterHeatingPipes; namespace RhSolutions.Api.Tests; public class ProductQueryModifierFactory { - public IProductQueryModifier GetModifier(string productTypeName) + public IProductMLModifier GetModifier(string productTypeName) { switch (productTypeName) { diff --git a/RhSolutions.Api.Tests/RhSolutions.QueryModifiers.Tests.csproj b/RhSolutions.Api.Tests/RhSolutions.Api.Tests.csproj similarity index 91% rename from RhSolutions.Api.Tests/RhSolutions.QueryModifiers.Tests.csproj rename to RhSolutions.Api.Tests/RhSolutions.Api.Tests.csproj index 471a0f0..5534bfe 100644 --- a/RhSolutions.Api.Tests/RhSolutions.QueryModifiers.Tests.csproj +++ b/RhSolutions.Api.Tests/RhSolutions.Api.Tests.csproj @@ -23,7 +23,7 @@ - + diff --git a/RhSolutions.Api.Tests/Usings.cs b/RhSolutions.Api.Tests/Usings.cs index 3a00a34..0c5cc00 100644 --- a/RhSolutions.Api.Tests/Usings.cs +++ b/RhSolutions.Api.Tests/Usings.cs @@ -1,2 +1,2 @@ global using NUnit.Framework; -global using RhSolutions.QueryModifiers; \ No newline at end of file +global using RhSolutions.MLModifiers; \ No newline at end of file diff --git a/RhSolutions.Api.sln b/RhSolutions.Api.sln new file mode 100644 index 0000000..a0f5d9c --- /dev/null +++ b/RhSolutions.Api.sln @@ -0,0 +1,34 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RhSolutions.Api", "RhSolutions.Api\RhSolutions.Api.csproj", "{6AACEC90-0811-418D-8505-EB142A2B2AFA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RhSolutions.Api.Tests", "RhSolutions.Api.Tests\RhSolutions.Api.Tests.csproj", "{E49F46C4-5F07-4055-AE8B-700AA6FC35FD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RhSolutions.MLModifiers", "RhSolutions.MLModifiers\RhSolutions.MLModifiers.csproj", "{50A53BB3-1F9D-4F19-90DB-BCB4D49FF9FE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6AACEC90-0811-418D-8505-EB142A2B2AFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6AACEC90-0811-418D-8505-EB142A2B2AFA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6AACEC90-0811-418D-8505-EB142A2B2AFA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6AACEC90-0811-418D-8505-EB142A2B2AFA}.Release|Any CPU.Build.0 = Release|Any CPU + {E49F46C4-5F07-4055-AE8B-700AA6FC35FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E49F46C4-5F07-4055-AE8B-700AA6FC35FD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E49F46C4-5F07-4055-AE8B-700AA6FC35FD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E49F46C4-5F07-4055-AE8B-700AA6FC35FD}.Release|Any CPU.Build.0 = Release|Any CPU + {50A53BB3-1F9D-4F19-90DB-BCB4D49FF9FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50A53BB3-1F9D-4F19-90DB-BCB4D49FF9FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50A53BB3-1F9D-4F19-90DB-BCB4D49FF9FE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50A53BB3-1F9D-4F19-90DB-BCB4D49FF9FE}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/RhSolutions.Api/Middleware/QueryModifier.cs b/RhSolutions.Api/Middleware/QueryModifier.cs index de08a86..f349e48 100644 --- a/RhSolutions.Api/Middleware/QueryModifier.cs +++ b/RhSolutions.Api/Middleware/QueryModifier.cs @@ -1,6 +1,6 @@ using Microsoft.AspNetCore.Http.Extensions; using RhSolutions.Api.Services; -using RhSolutions.QueryModifiers; +using RhSolutions.MLModifiers; namespace RhSolutions.Api.Middleware; @@ -8,7 +8,7 @@ public class QueryModifier { private RequestDelegate _next; private IServiceProvider _provider; - private IProductQueryModifier? _modifier; + private IProductMLModifier? _modifier; public QueryModifier(RequestDelegate nextDelegate, IServiceProvider provider) { @@ -23,7 +23,7 @@ public class QueryModifier { string query = context.Request.Query["query"].ToString(); var productType = typePredicter.GetPredictedProductType(query); - _modifier = _provider.GetRequiredKeyedService(productType); + _modifier = _provider.GetRequiredKeyedService(productType); if (_modifier == null) return; if (_modifier.TryQueryModify(query, out var modified)) { diff --git a/RhSolutions.Api/Program.cs b/RhSolutions.Api/Program.cs index eb6d7f3..11f6722 100644 --- a/RhSolutions.Api/Program.cs +++ b/RhSolutions.Api/Program.cs @@ -2,9 +2,7 @@ using Microsoft.EntityFrameworkCore; using RhSolutions.Models; using RhSolutions.Api.Services; using RhSolutions.Api.Middleware; -using RhSolutions.QueryModifiers; -using RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; -using RhSolutions.QueryModifiers.DrinkingWaterHeatingPipes; +using RhSolutions.MLModifiers; using Microsoft.OpenApi.Models; using System.Reflection; @@ -29,39 +27,8 @@ builder.Services.AddDbContext(opts => }); builder.Services.AddScoped() .AddScoped(); +builder.Services.AddModifiers(); builder.Services.AddControllers(); - -builder.Services.AddKeyedTransient("Монтажная гильза") - .AddKeyedTransient("Желоб") - .AddKeyedTransient("Тройник RAUTITAN") - .AddKeyedTransient("Тройник RAUTITAN резьбовой наружный") - .AddKeyedTransient("Тройник RAUTITAN резьбовой внутренний") - .AddKeyedTransient("Переходник на наружную резьбу") - .AddKeyedTransient("Переходник на внутреннюю резьбу") - .AddKeyedTransient("Переходник с накидной гайкой") - .AddKeyedTransient("Угольник с наружной резьбой") - .AddKeyedTransient("Угольник с внутренней резьбой") - .AddKeyedTransient("Угольник настенный наружный") - .AddKeyedTransient("Угольник настенный внутренний") - .AddKeyedTransient("Проточный настенный угольник") - .AddKeyedTransient("Угольник с накидной гайкой") - .AddKeyedTransient("Муфта соединительная") - .AddKeyedTransient("Угольник RAUTITAN") - .AddKeyedTransient("Фиксатор поворота отопление") - .AddKeyedTransient("Фиксатор поворота водоснабжение") - .AddKeyedTransient("Трубка Г-образная") - .AddKeyedTransient("Трубка Т-образная") - .AddKeyedTransient("Резьбозажимное flex") - .AddKeyedTransient("Резьбозажимное stabil") - .AddKeyedTransient("Переходник на евроконус") - .AddKeyedTransient("Резьбозажимное для трубки") - .AddKeyedTransient("Ниппель") - .AddKeyedTransient("Заглушка труб RAUTITAN") - .AddKeyedTransient("Flex") - .AddKeyedTransient("Pink") - .AddKeyedTransient("Stabil") - .AddKeyedTransient("Black"); - builder.Services.AddSwaggerGen(options => { options.SwaggerDoc("v1", new OpenApiInfo @@ -77,7 +44,6 @@ builder.Services.AddSwaggerGen(options => } }); - var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename)); }); @@ -92,7 +58,4 @@ app.UseSwagger().UseSwaggerUI(options => options.RoutePrefix = string.Empty; }); -var context = app.Services.CreateScope().ServiceProvider - .GetRequiredService(); - app.Run(); diff --git a/RhSolutions.Api/RhSolutions.Api.csproj b/RhSolutions.Api/RhSolutions.Api.csproj index f32d9e4..eb3916a 100644 --- a/RhSolutions.Api/RhSolutions.Api.csproj +++ b/RhSolutions.Api/RhSolutions.Api.csproj @@ -24,14 +24,14 @@ - - - - PreserveNewest + + + + diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Adapter.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Adapter.cs similarity index 87% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Adapter.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Adapter.cs index 2956fd1..78cb9a2 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Adapter.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Adapter.cs @@ -1,6 +1,6 @@ using System.Text.RegularExpressions; -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; public abstract class Adapter : DrinkingWaterHeatingFitting { diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/AdapterExternal.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/AdapterExternal.cs similarity index 50% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/AdapterExternal.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/AdapterExternal.cs index 8356c59..2aeb63e 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/AdapterExternal.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/AdapterExternal.cs @@ -1,5 +1,6 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Переходник на наружную резьбу")] public class AdapterExternal : Adapter { protected override string _title => "Переходник с наружной резьбой"; diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/AdapterInternal.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/AdapterInternal.cs similarity index 56% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/AdapterInternal.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/AdapterInternal.cs index 56e36f1..52954bd 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/AdapterInternal.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/AdapterInternal.cs @@ -1,5 +1,6 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Переходник на внутреннюю резьбу")] public class AdapterInternal : Adapter { protected override string _title => "Переходник с внутренней резьбой -угольник-переходник"; diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/AdapterScrewcap.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/AdapterScrewcap.cs new file mode 100644 index 0000000..543fb8a --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/AdapterScrewcap.cs @@ -0,0 +1,7 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Переходник с накидной гайкой")] +public class AdapterScrewcap : Adapter +{ + protected override string _title => "Переходник с накидной гайкой"; +} \ No newline at end of file diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/BendFormerHeating.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/BendFormerHeating.cs similarity index 82% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/BendFormerHeating.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/BendFormerHeating.cs index b0269a6..9507ea0 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/BendFormerHeating.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/BendFormerHeating.cs @@ -1,5 +1,6 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Фиксатор поворота отопление")] public class BendFormerHeating : DrinkingWaterHeatingFitting { protected override string _title => "Фиксатор поворота"; diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/BendFormerSanitary.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/BendFormerSanitary.cs similarity index 80% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/BendFormerSanitary.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/BendFormerSanitary.cs index 0290ef8..74bcc09 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/BendFormerSanitary.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/BendFormerSanitary.cs @@ -1,5 +1,6 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Фиксатор поворота водоснабжение")] public class BendFormerSanitary : DrinkingWaterHeatingFitting { protected override string _title => "Фиксатор поворота с кольцами"; diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ConnectionBend.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ConnectionBend.cs similarity index 80% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ConnectionBend.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ConnectionBend.cs index 0ff72d7..4bdadef 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ConnectionBend.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ConnectionBend.cs @@ -1,10 +1,11 @@ using System.Text.RegularExpressions; -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Трубка Г-образная")] public class ConnectionBend : DrinkingWaterHeatingFitting { - private static readonly int[] lengths = new [] { 250, 500, 1000 }; + private static readonly int[] lengths = [250, 500, 1000]; private static readonly Regex _pattern = new(@"([\b\D]|^)?(?16|20|25)(\D+|.*15.*)(?\b\d{3,4})([\b\D]|$)"); protected override string _title => "Трубка Г-образная"; diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ConnectionTee.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ConnectionTee.cs similarity index 51% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ConnectionTee.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ConnectionTee.cs index 77c0204..64b5243 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ConnectionTee.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ConnectionTee.cs @@ -1,5 +1,6 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Трубка Т-образная")] public class ConnectionTee : ConnectionBend { protected override string _title => "Трубка Т-образная"; diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Coupling.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Coupling.cs similarity index 85% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Coupling.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Coupling.cs index 8ae446c..8f12566 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Coupling.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Coupling.cs @@ -1,5 +1,6 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Муфта соединительная")] public class Coupling : DrinkingWaterHeatingFitting { protected override string _title => "Муфта соединительная"; diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs similarity index 82% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs index 0d635b1..50a9943 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs @@ -1,8 +1,8 @@ using System.Text.RegularExpressions; -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; -public abstract class DrinkingWaterHeatingFitting : IProductQueryModifier +public abstract class DrinkingWaterHeatingFitting : IProductMLModifier { protected static readonly Regex _diameter = new(@"([\b\D]|^)?(?16|20|25|32|40|50|63)([\b\D]|$)"); diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/DummyPlug.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/DummyPlug.cs new file mode 100644 index 0000000..9cf4ba8 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/DummyPlug.cs @@ -0,0 +1,7 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Заглушка труб RAUTITAN")] +public class DummyPlug : DrinkingWaterHeatingFitting +{ + protected override string _title => "Заглушка для полимерн. трубы"; +} \ No newline at end of file diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Elbow.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Elbow.cs similarity index 83% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Elbow.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Elbow.cs index bb700b6..c762936 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Elbow.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Elbow.cs @@ -1,5 +1,6 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Угольник RAUTITAN")] public class Elbow : DrinkingWaterHeatingFitting { protected override string _title { get; } = "Угольник -PLATINUM"; diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Eurocone.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Eurocone.cs similarity index 88% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Eurocone.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Eurocone.cs index 00047f3..4aaa812 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Eurocone.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Eurocone.cs @@ -1,4 +1,4 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; public abstract class Eurocone : DrinkingWaterHeatingFitting { diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs similarity index 78% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs index 7f779f4..b9a4e09 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs @@ -1,5 +1,6 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Переходник на евроконус")] public class EuroconeAdapter : DrinkingWaterHeatingFitting { protected override string _title => "Переходник на евроконус"; diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs similarity index 68% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs index 554c346..a011f01 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs @@ -1,5 +1,6 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Резьбозажимное для трубки")] public class EuroconeConnectionBend : DrinkingWaterHeatingFitting { public override bool TryQueryModify(string input, out string output) diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs similarity index 70% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs index 382e775..d84a92c 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs @@ -1,5 +1,6 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Резьбозажимное flex")] public class EuroconeFlex : Eurocone { protected override Dictionary _titles => new() diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeStabil.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeStabil.cs similarity index 70% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeStabil.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeStabil.cs index bc7c34d..5b8c700 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeStabil.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeStabil.cs @@ -1,5 +1,6 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Резьбозажимное stabil")] public class EuroconeStabil : Eurocone { protected override Dictionary _titles => new() diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Nippel.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Nippel.cs similarity index 71% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Nippel.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Nippel.cs index 6c61184..12ffa72 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Nippel.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Nippel.cs @@ -1,5 +1,6 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Ниппель")] public class Nippel : DrinkingWaterHeatingFitting { public override bool TryQueryModify(string input, out string output) diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ScrewcapElbow.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ScrewcapElbow.cs new file mode 100644 index 0000000..d0f494c --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ScrewcapElbow.cs @@ -0,0 +1,7 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Угольник с накидной гайкой")] +public class ScrewcapElbow : Adapter +{ + protected override string _title => "Угольник-переходник с накидной гайкой"; +} diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Sleeve.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Sleeve.cs new file mode 100644 index 0000000..facb4c6 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Sleeve.cs @@ -0,0 +1,7 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Монтажная гильза")] +public class Sleeve : DrinkingWaterHeatingFitting +{ + protected override string _title => "Монтажная гильза"; +} diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/SupportingClip.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/SupportingClip.cs similarity index 85% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/SupportingClip.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/SupportingClip.cs index 54eade9..955a515 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/SupportingClip.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/SupportingClip.cs @@ -1,5 +1,6 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Желоб")] public class SupportingClip : DrinkingWaterHeatingFitting { protected override string _title => "Фиксирующий желоб для ПЭ-трубы"; diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/TPiece.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/TPiece.cs similarity index 84% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/TPiece.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/TPiece.cs index e25f4c2..274fd3d 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/TPiece.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/TPiece.cs @@ -1,5 +1,6 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Тройник RAUTITAN")] public class TPiece : DrinkingWaterHeatingFitting { protected override string _title => "Тройник -PLATINUM"; diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowDoubleWallInternal.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowDoubleWallInternal.cs similarity index 87% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowDoubleWallInternal.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowDoubleWallInternal.cs index d6772bf..aaeca67 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowDoubleWallInternal.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowDoubleWallInternal.cs @@ -1,7 +1,8 @@ using System.Text.RegularExpressions; -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Проточный настенный угольник")] public class ThreadElbowDoubleWallInternal : DrinkingWaterHeatingFitting { protected override string _title => "Проточный настенный угольник"; diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowExternal.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowExternal.cs similarity index 54% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowExternal.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowExternal.cs index 010fcc2..6cebc22 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowExternal.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowExternal.cs @@ -1,5 +1,6 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Угольник с наружной резьбой")] public class ThreadElbowExternal : Adapter { protected override string _title => "Угольник-переходник с наружной резьбой"; diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowInternal.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowInternal.cs new file mode 100644 index 0000000..4a7e5f4 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowInternal.cs @@ -0,0 +1,7 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Угольник с внутренней резьбой")] +public class ThreadElbowInternal : Adapter +{ + protected override string _title => "Угольник-переходник с внутренней резьбой"; +} diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallExternal.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallExternal.cs similarity index 82% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallExternal.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallExternal.cs index c8edfab..4df2e3e 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallExternal.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallExternal.cs @@ -1,5 +1,6 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Угольник настенный наружный")] public class ThreadElbowWallExternal : DrinkingWaterHeatingFitting { protected override string _title => "Угольник настенный с наружной резьбой"; diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallInternal.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallInternal.cs similarity index 85% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallInternal.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallInternal.cs index 6450796..8a4edb3 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallInternal.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallInternal.cs @@ -1,7 +1,8 @@ using System.Text.RegularExpressions; -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Угольник настенный внутренний")] public class ThreadElbowWallInternal : DrinkingWaterHeatingFitting { protected override string _title => "Угольник настенный внутр. резьба"; diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadTPieceExternal.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadTPieceExternal.cs similarity index 84% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadTPieceExternal.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadTPieceExternal.cs index 52f68b4..30b35c3 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadTPieceExternal.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadTPieceExternal.cs @@ -1,7 +1,8 @@ using System.Text.RegularExpressions; -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Тройник RAUTITAN резьбовой наружный")] public class ThreadTPieceExternal : DrinkingWaterHeatingFitting { protected override string _title => "Тройник с наружной резьбой"; diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadTPieceInternal.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadTPieceInternal.cs similarity index 89% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadTPieceInternal.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadTPieceInternal.cs index 3b81026..b57fffc 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadTPieceInternal.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadTPieceInternal.cs @@ -1,7 +1,8 @@ using System.Text.RegularExpressions; -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; +[MLModifierKey("Тройник RAUTITAN резьбовой внутренний")] public class ThreadTPieceInternal : DrinkingWaterHeatingFitting { public override bool TryQueryModify(string input, out string output) diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/BlackPipe.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/BlackPipe.cs new file mode 100644 index 0000000..5c8f981 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/BlackPipe.cs @@ -0,0 +1,17 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingPipes; + +[MLModifierKey("Black")] +public class BlackPipe : DrinkingWaterHeatingPipe +{ + protected override string _title => "Black"; + protected override Dictionary _diameterNames => new() + { + [16] = "16х2,2", + [20] = "20х2,8", + [25] = "25х3,5", + [32] = string.Empty, + [40] = string.Empty, + [50] = string.Empty, + [63] = string.Empty + }; +} diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs similarity index 91% rename from RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs rename to RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs index 1420d03..f83d93a 100644 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs @@ -1,8 +1,8 @@ using System.Text.RegularExpressions; -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingPipes; +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingPipes; -public class DrinkingWaterHeatingPipe : IProductQueryModifier +public abstract class DrinkingWaterHeatingPipe : IProductMLModifier { protected static readonly Regex _diameter = new(@"([\b\D]|^)?(?16|20|25|32|40|50|63)([\b\D]|$)"); diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/FlexPipe.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/FlexPipe.cs new file mode 100644 index 0000000..b567bb0 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/FlexPipe.cs @@ -0,0 +1,7 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingPipes; + +[MLModifierKey("Flex")] +public class FlexPipe : DrinkingWaterHeatingPipe +{ + protected override string _title => "Flex"; +} \ No newline at end of file diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/PinkPipe.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/PinkPipe.cs new file mode 100644 index 0000000..e7969a0 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/PinkPipe.cs @@ -0,0 +1,24 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingPipes; + +[MLModifierKey("Pink")] +public class PinkPipe : DrinkingWaterHeatingPipe +{ + protected override string _title => "Pink+"; + + protected override Dictionary _makeUp => new() + { + ["бухт"] = "бухта", + ["штанг"] = "прямые отрезки", + ["отр"] = "прямые отрезки" + }; + protected override Dictionary _diameterNames => new() + { + [16] = "16х2,2", + [20] = "20х2,8", + [25] = "25х3,5", + [32] = "32х4,4", + [40] = "40х5,5", + [50] = "50х6,9", + [63] = "63х8,7" + }; +} diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/StabilPipe.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/StabilPipe.cs new file mode 100644 index 0000000..15cc857 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/StabilPipe.cs @@ -0,0 +1,17 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingPipes; + +[MLModifierKey("Stabil")] +public class StabilPipe : DrinkingWaterHeatingPipe +{ + protected override string _title => "Stabil -PLATINUM"; + protected override Dictionary _diameterNames => new() + { + [16] = "16,2х2,6", + [20] = "20х2,9", + [25] = "25х3,7", + [32] = "32х4,7", + [40] = "40х6,0", + [50] = "50x6,9", + [63] = "63x8,6" + }; +} diff --git a/RhSolutions.MLModifiers/IProductMLModifier.cs b/RhSolutions.MLModifiers/IProductMLModifier.cs new file mode 100644 index 0000000..544fcbe --- /dev/null +++ b/RhSolutions.MLModifiers/IProductMLModifier.cs @@ -0,0 +1,6 @@ +namespace RhSolutions.MLModifiers; + +public interface IProductMLModifier +{ + public bool TryQueryModify(string query, out string queryModified); +} diff --git a/RhSolutions.MLModifiers/MLModifierKey.cs b/RhSolutions.MLModifiers/MLModifierKey.cs new file mode 100644 index 0000000..564abea --- /dev/null +++ b/RhSolutions.MLModifiers/MLModifierKey.cs @@ -0,0 +1,10 @@ +namespace RhSolutions.MLModifiers; + +public class MLModifierKey : Attribute +{ + public string Value { get; private set; } + public MLModifierKey(string value) + { + Value = value; + } +} \ No newline at end of file diff --git a/RhSolutions.MLModifiers/MLModifiersRegistration.cs b/RhSolutions.MLModifiers/MLModifiersRegistration.cs new file mode 100644 index 0000000..57016ea --- /dev/null +++ b/RhSolutions.MLModifiers/MLModifiersRegistration.cs @@ -0,0 +1,25 @@ +using Microsoft.Extensions.DependencyInjection; +using System.Reflection; + +namespace RhSolutions.MLModifiers; + +public static class MLModifiersRegistration +{ + public static void AddModifiers(this IServiceCollection services) + { + var types = AppDomain.CurrentDomain.GetAssemblies() + .SelectMany(s => s.GetTypes()) + .Where(p => p.IsDefined(typeof(MLModifierKey), true)); + + foreach (Type t in types) + { + string key = GetModifierKey(t); + services.AddKeyedTransient(typeof(IProductMLModifier), key, t); + } + } + + private static string GetModifierKey(Type t) + { + return t.GetCustomAttribute()?.Value ?? string.Empty; + } +} \ No newline at end of file diff --git a/RhSolutions.QueryModifiers/RhSolutions.QueryModifiers.csproj b/RhSolutions.MLModifiers/RhSolutions.MLModifiers.csproj similarity index 100% rename from RhSolutions.QueryModifiers/RhSolutions.QueryModifiers.csproj rename to RhSolutions.MLModifiers/RhSolutions.MLModifiers.csproj diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/AdapterScrewcap.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/AdapterScrewcap.cs deleted file mode 100644 index 43fa639..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/AdapterScrewcap.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class AdapterScrewcap : Adapter -{ - protected override string _title => "Переходник с накидной гайкой"; -} \ No newline at end of file diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/DummyPlug.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/DummyPlug.cs deleted file mode 100644 index f29bc24..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/DummyPlug.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class DummyPlug : DrinkingWaterHeatingFitting -{ - protected override string _title => "Заглушка для полимерн. трубы"; -} \ No newline at end of file diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ScrewcapElbow.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ScrewcapElbow.cs deleted file mode 100644 index 97e2fb7..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ScrewcapElbow.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class ScrewcapElbow : Adapter -{ - protected override string _title => "Угольник-переходник с накидной гайкой"; -} diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Sleeve.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Sleeve.cs deleted file mode 100644 index c546236..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Sleeve.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class Sleeve : DrinkingWaterHeatingFitting -{ - protected override string _title => "Монтажная гильза"; -} diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowInternal.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowInternal.cs deleted file mode 100644 index 187f66d..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowInternal.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class ThreadElbowInternal : Adapter -{ - protected override string _title => "Угольник-переходник с внутренней резьбой"; -} diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/BlackPipe.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/BlackPipe.cs deleted file mode 100644 index b715cc1..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/BlackPipe.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingPipes; - -public class BlackPipe : DrinkingWaterHeatingPipe -{ - protected override string _title => "Black"; - protected override Dictionary _diameterNames => new() - { - [16] = "16х2,2", - [20] = "20х2,8", - [25] = "25х3,5", - [32] = string.Empty, - [40] = string.Empty, - [50] = string.Empty, - [63] = string.Empty - }; -} diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/FlexPipe.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/FlexPipe.cs deleted file mode 100644 index 4294a9a..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/FlexPipe.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingPipes; - -public class FlexPipe : DrinkingWaterHeatingPipe -{ - protected override string _title => "Flex"; -} \ No newline at end of file diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/PinkPipe.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/PinkPipe.cs deleted file mode 100644 index 295744f..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/PinkPipe.cs +++ /dev/null @@ -1,23 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingPipes; - -public class PinkPipe : DrinkingWaterHeatingPipe -{ - protected override string _title => "Pink+"; - - protected override Dictionary _makeUp => new() - { - ["бухт"] = "бухта", - ["штанг"] = "прямые отрезки", - ["отр"] = "прямые отрезки" - }; - protected override Dictionary _diameterNames => new() - { - [16] = "16х2,2", - [20] = "20х2,8", - [25] = "25х3,5", - [32] = "32х4,4", - [40] = "40х5,5", - [50] = "50х6,9", - [63] = "63х8,7" - }; -} diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/StabilPipe.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/StabilPipe.cs deleted file mode 100644 index 49dde86..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/StabilPipe.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingPipes; - -public class StabilPipe : DrinkingWaterHeatingPipe -{ - protected override string _title => "Stabil -PLATINUM"; - protected override Dictionary _diameterNames => new() - { - [16] = "16,2х2,6", - [20] = "20х2,9", - [25] = "25х3,7", - [32] = "32х4,7", - [40] = "40х6,0", - [50] = "50x6,9", - [63] = "63x8,6" - }; -} diff --git a/RhSolutions.QueryModifiers/IProductQueryModifier.cs b/RhSolutions.QueryModifiers/IProductQueryModifier.cs deleted file mode 100644 index bf790ef..0000000 --- a/RhSolutions.QueryModifiers/IProductQueryModifier.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace RhSolutions.QueryModifiers; - -public interface IProductQueryModifier -{ - public bool TryQueryModify(string query, out string queryModified); -} diff --git a/RhSolutions.sln b/RhSolutions.sln deleted file mode 100644 index c719061..0000000 --- a/RhSolutions.sln +++ /dev/null @@ -1,34 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.31903.59 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RhSolutions.Api", "RhSolutions.Api\RhSolutions.Api.csproj", "{FD778359-7E92-4B5C-A4F9-7942A28E58F5}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RhSolutions.QueryModifiers.Tests", "RhSolutions.Api.Tests\RhSolutions.QueryModifiers.Tests.csproj", "{9A4E9EFA-B854-4C29-AA94-A6CE074EDABA}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RhSolutions.QueryModifiers", "RhSolutions.QueryModifiers\RhSolutions.QueryModifiers.csproj", "{0C96960B-859B-4376-882E-AA0EB203B1EA}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FD778359-7E92-4B5C-A4F9-7942A28E58F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FD778359-7E92-4B5C-A4F9-7942A28E58F5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FD778359-7E92-4B5C-A4F9-7942A28E58F5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FD778359-7E92-4B5C-A4F9-7942A28E58F5}.Release|Any CPU.Build.0 = Release|Any CPU - {9A4E9EFA-B854-4C29-AA94-A6CE074EDABA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9A4E9EFA-B854-4C29-AA94-A6CE074EDABA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9A4E9EFA-B854-4C29-AA94-A6CE074EDABA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9A4E9EFA-B854-4C29-AA94-A6CE074EDABA}.Release|Any CPU.Build.0 = Release|Any CPU - {0C96960B-859B-4376-882E-AA0EB203B1EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0C96960B-859B-4376-882E-AA0EB203B1EA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0C96960B-859B-4376-882E-AA0EB203B1EA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0C96960B-859B-4376-882E-AA0EB203B1EA}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection -EndGlobal