From a0a1c23c4d313d7c78b7cc6b7d6a108c3dad04ca Mon Sep 17 00:00:00 2001 From: Serghei Cebotari Date: Fri, 26 Jan 2024 15:50:41 +0300 Subject: Add ML Modifiers with attribute --- RhSolutions.Api.Tests/BypassQueryModifier.cs | 2 +- .../ProductQueryModifierFactory.cs | 6 +-- RhSolutions.Api.Tests/RhSolutions.Api.Tests.csproj | 29 +++++++++++ .../RhSolutions.QueryModifiers.Tests.csproj | 29 ----------- 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 | 23 +++++++++ .../AdapterExternal.cs | 7 +++ .../AdapterInternal.cs | 7 +++ .../AdapterScrewcap.cs | 7 +++ .../BendFormerHeating.cs | 25 ++++++++++ .../BendFormerSanitary.cs | 22 +++++++++ .../DrinkingWaterHeatingFittings/ConnectionBend.cs | 27 +++++++++++ .../DrinkingWaterHeatingFittings/ConnectionTee.cs | 7 +++ .../DrinkingWaterHeatingFittings/Coupling.cs | 30 ++++++++++++ .../DrinkingWaterHeatingFitting.cs | 30 ++++++++++++ .../DrinkingWaterHeatingFittings/DummyPlug.cs | 7 +++ .../DrinkingWaterHeatingFittings/Elbow.cs | 22 +++++++++ .../DrinkingWaterHeatingFittings/Eurocone.cs | 22 +++++++++ .../EuroconeAdapter.cs | 20 ++++++++ .../EuroconeConnectionBend.cs | 11 +++++ .../DrinkingWaterHeatingFittings/EuroconeFlex.cs | 11 +++++ .../DrinkingWaterHeatingFittings/EuroconeStabil.cs | 11 +++++ .../DrinkingWaterHeatingFittings/Nippel.cs | 11 +++++ .../DrinkingWaterHeatingFittings/ScrewcapElbow.cs | 7 +++ .../DrinkingWaterHeatingFittings/Sleeve.cs | 7 +++ .../DrinkingWaterHeatingFittings/SupportingClip.cs | 24 ++++++++++ .../DrinkingWaterHeatingFittings/TPiece.cs | 28 +++++++++++ .../ThreadElbowDoubleWallInternal.cs | 32 +++++++++++++ .../ThreadElbowExternal.cs | 7 +++ .../ThreadElbowInternal.cs | 7 +++ .../ThreadElbowWallExternal.cs | 26 ++++++++++ .../ThreadElbowWallInternal.cs | 30 ++++++++++++ .../ThreadTPieceExternal.cs | 30 ++++++++++++ .../ThreadTPieceInternal.cs | 42 ++++++++++++++++ .../DrinkingWaterHeatingPipes/BlackPipe.cs | 17 +++++++ .../DrinkingWaterHeatingPipe.cs | 56 ++++++++++++++++++++++ .../DrinkingWaterHeatingPipes/FlexPipe.cs | 7 +++ .../DrinkingWaterHeatingPipes/PinkPipe.cs | 24 ++++++++++ .../DrinkingWaterHeatingPipes/StabilPipe.cs | 17 +++++++ RhSolutions.MLModifiers/IProductMLModifier.cs | 6 +++ RhSolutions.MLModifiers/MLModifierKey.cs | 10 ++++ RhSolutions.MLModifiers/MLModifiersRegistration.cs | 25 ++++++++++ .../RhSolutions.MLModifiers.csproj | 13 +++++ .../DrinkingWaterHeatingFittings/Adapter.cs | 23 --------- .../AdapterExternal.cs | 6 --- .../AdapterInternal.cs | 6 --- .../AdapterScrewcap.cs | 6 --- .../BendFormerHeating.cs | 24 ---------- .../BendFormerSanitary.cs | 21 -------- .../DrinkingWaterHeatingFittings/ConnectionBend.cs | 26 ---------- .../DrinkingWaterHeatingFittings/ConnectionTee.cs | 6 --- .../DrinkingWaterHeatingFittings/Coupling.cs | 29 ----------- .../DrinkingWaterHeatingFitting.cs | 30 ------------ .../DrinkingWaterHeatingFittings/DummyPlug.cs | 6 --- .../DrinkingWaterHeatingFittings/Elbow.cs | 21 -------- .../DrinkingWaterHeatingFittings/Eurocone.cs | 22 --------- .../EuroconeAdapter.cs | 19 -------- .../EuroconeConnectionBend.cs | 10 ---- .../DrinkingWaterHeatingFittings/EuroconeFlex.cs | 10 ---- .../DrinkingWaterHeatingFittings/EuroconeStabil.cs | 10 ---- .../DrinkingWaterHeatingFittings/Nippel.cs | 10 ---- .../DrinkingWaterHeatingFittings/ScrewcapElbow.cs | 6 --- .../DrinkingWaterHeatingFittings/Sleeve.cs | 6 --- .../DrinkingWaterHeatingFittings/SupportingClip.cs | 23 --------- .../DrinkingWaterHeatingFittings/TPiece.cs | 27 ----------- .../ThreadElbowDoubleWallInternal.cs | 31 ------------ .../ThreadElbowExternal.cs | 6 --- .../ThreadElbowInternal.cs | 6 --- .../ThreadElbowWallExternal.cs | 25 ---------- .../ThreadElbowWallInternal.cs | 29 ----------- .../ThreadTPieceExternal.cs | 29 ----------- .../ThreadTPieceInternal.cs | 41 ---------------- .../DrinkingWaterHeatingPipes/BlackPipe.cs | 16 ------- .../DrinkingWaterHeatingPipe.cs | 56 ---------------------- .../DrinkingWaterHeatingPipes/FlexPipe.cs | 6 --- .../DrinkingWaterHeatingPipes/PinkPipe.cs | 23 --------- .../DrinkingWaterHeatingPipes/StabilPipe.cs | 16 ------- .../IProductQueryModifier.cs | 6 --- .../RhSolutions.QueryModifiers.csproj | 13 ----- RhSolutions.sln | 34 ------------- 84 files changed, 792 insertions(+), 764 deletions(-) create mode 100644 RhSolutions.Api.Tests/RhSolutions.Api.Tests.csproj delete mode 100644 RhSolutions.Api.Tests/RhSolutions.QueryModifiers.Tests.csproj create mode 100644 RhSolutions.Api.sln create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Adapter.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/AdapterExternal.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/AdapterInternal.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/AdapterScrewcap.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/BendFormerHeating.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/BendFormerSanitary.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ConnectionBend.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ConnectionTee.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Coupling.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/DummyPlug.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Elbow.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Eurocone.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeStabil.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Nippel.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ScrewcapElbow.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Sleeve.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/SupportingClip.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/TPiece.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowDoubleWallInternal.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowExternal.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowInternal.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallExternal.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallInternal.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadTPieceExternal.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadTPieceInternal.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/BlackPipe.cs create mode 100644 RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs 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 create mode 100644 RhSolutions.MLModifiers/RhSolutions.MLModifiers.csproj delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Adapter.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/AdapterExternal.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/AdapterInternal.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/AdapterScrewcap.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/BendFormerHeating.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/BendFormerSanitary.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ConnectionBend.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ConnectionTee.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Coupling.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/DummyPlug.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Elbow.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Eurocone.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeStabil.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Nippel.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ScrewcapElbow.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Sleeve.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/SupportingClip.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/TPiece.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowDoubleWallInternal.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowExternal.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowInternal.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallExternal.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallInternal.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadTPieceExternal.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadTPieceInternal.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/BlackPipe.cs delete mode 100644 RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.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.QueryModifiers/RhSolutions.QueryModifiers.csproj 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.Api.Tests.csproj b/RhSolutions.Api.Tests/RhSolutions.Api.Tests.csproj new file mode 100644 index 0000000..5534bfe --- /dev/null +++ b/RhSolutions.Api.Tests/RhSolutions.Api.Tests.csproj @@ -0,0 +1,29 @@ + + + + net8.0 + enable + enable + false + false + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + diff --git a/RhSolutions.Api.Tests/RhSolutions.QueryModifiers.Tests.csproj b/RhSolutions.Api.Tests/RhSolutions.QueryModifiers.Tests.csproj deleted file mode 100644 index 471a0f0..0000000 --- a/RhSolutions.Api.Tests/RhSolutions.QueryModifiers.Tests.csproj +++ /dev/null @@ -1,29 +0,0 @@ - - - - net8.0 - enable - enable - false - false - - - - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - - - - 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.MLModifiers/DrinkingWaterHeatingFittings/Adapter.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Adapter.cs new file mode 100644 index 0000000..78cb9a2 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Adapter.cs @@ -0,0 +1,23 @@ +using System.Text.RegularExpressions; + +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +public abstract class Adapter : DrinkingWaterHeatingFitting +{ + public override bool TryQueryModify(string input, out string output) + { + output = string.Empty; + Match diameter = _diameter.Match(input); + if (!diameter.Success) + { + return false; + } + Match thread = _thread.Match(input); + if (!thread.Success) + { + return false; + } + output = $"{_title} {diameter.Groups["Diameter"]} {thread.Groups["Thread"]}"; + return true; + } +} diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/AdapterExternal.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/AdapterExternal.cs new file mode 100644 index 0000000..2aeb63e --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/AdapterExternal.cs @@ -0,0 +1,7 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Переходник на наружную резьбу")] +public class AdapterExternal : Adapter +{ + protected override string _title => "Переходник с наружной резьбой"; +} \ No newline at end of file diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/AdapterInternal.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/AdapterInternal.cs new file mode 100644 index 0000000..52954bd --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/AdapterInternal.cs @@ -0,0 +1,7 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Переходник на внутреннюю резьбу")] +public class AdapterInternal : Adapter +{ + protected override string _title => "Переходник с внутренней резьбой -угольник-переходник"; +} \ No newline at end of file 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.MLModifiers/DrinkingWaterHeatingFittings/BendFormerHeating.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/BendFormerHeating.cs new file mode 100644 index 0000000..9507ea0 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/BendFormerHeating.cs @@ -0,0 +1,25 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Фиксатор поворота отопление")] +public class BendFormerHeating : DrinkingWaterHeatingFitting +{ + protected override string _title => "Фиксатор поворота"; + 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; + if (diameter == "16") + { + diameter += "/17"; + } + var angleMatch = _angle.Match(input); + string angle = angleMatch.Success ? angleMatch.Groups["Angle"].Value : "90"; + output = $"{_title} {diameter}/{angle}°"; + return true; + } +} diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/BendFormerSanitary.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/BendFormerSanitary.cs new file mode 100644 index 0000000..74bcc09 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/BendFormerSanitary.cs @@ -0,0 +1,22 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Фиксатор поворота водоснабжение")] +public class BendFormerSanitary : DrinkingWaterHeatingFitting +{ + protected override string _title => "Фиксатор поворота с кольцами"; + + 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.MLModifiers/DrinkingWaterHeatingFittings/ConnectionBend.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ConnectionBend.cs new file mode 100644 index 0000000..4bdadef --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ConnectionBend.cs @@ -0,0 +1,27 @@ +using System.Text.RegularExpressions; + +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Трубка Г-образная")] +public class ConnectionBend : DrinkingWaterHeatingFitting +{ + 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 => "Трубка Г-образная"; + + public override bool TryQueryModify(string input, out string output) + { + output = string.Empty; + var match = _pattern.Match(input); + if (!match.Success) + { + return false; + } + string diameter = match.Groups["Diameter"].Value; + int length = int.Parse(match.Groups["Length"].Value); + int nearest = lengths.OrderBy(x => Math.Abs(x - length)).First(); + output = $"{_title} {diameter}/{nearest}"; + return true; + } +} diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ConnectionTee.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ConnectionTee.cs new file mode 100644 index 0000000..64b5243 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ConnectionTee.cs @@ -0,0 +1,7 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Трубка Т-образная")] +public class ConnectionTee : ConnectionBend +{ + protected override string _title => "Трубка Т-образная"; +} \ No newline at end of file diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Coupling.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Coupling.cs new file mode 100644 index 0000000..8f12566 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Coupling.cs @@ -0,0 +1,30 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Муфта соединительная")] +public class Coupling : DrinkingWaterHeatingFitting +{ + protected override string _title => "Муфта соединительная"; + + public override bool TryQueryModify(string input, out string output) + { + output = string.Empty; + var diametersMatches = _diameter.Matches(input); + if (diametersMatches.Count == 0) + { + return false; + } + 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]) + { + output = $"{_title} равнопроходная {diameters[0]}"; + } + else + { + output = $"{_title} переходная {diameters[0]}-{diameters[1]}"; + } + return true; + } +} diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs new file mode 100644 index 0000000..50a9943 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs @@ -0,0 +1,30 @@ +using System.Text.RegularExpressions; + +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +public abstract class DrinkingWaterHeatingFitting : IProductMLModifier +{ + protected static readonly Regex _diameter = + new(@"([\b\D]|^)?(?16|20|25|32|40|50|63)([\b\D]|$)"); + protected static readonly Regex _angle = + new(@"([\b\D])(?45|90)([\b\D]|$)"); + protected static readonly Regex _thread = + new(@"([\b\D])(?1\s+1/4|1\s+1/2|1/2|3/4|2|1)([\b\D]|$)"); + + protected virtual string _title { get; } = string.Empty; + + public virtual bool TryQueryModify(string input, out string output) + { + var match = _diameter.Match(input); + if (match.Success) + { + output = $"{_title} {match.Groups["Diameter"]}"; + return true; + } + else + { + output = string.Empty; + return false; + } + } +} 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.MLModifiers/DrinkingWaterHeatingFittings/Elbow.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Elbow.cs new file mode 100644 index 0000000..c762936 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Elbow.cs @@ -0,0 +1,22 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Угольник RAUTITAN")] +public class Elbow : DrinkingWaterHeatingFitting +{ + protected override string _title { get; } = "Угольник -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.MLModifiers/DrinkingWaterHeatingFittings/Eurocone.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Eurocone.cs new file mode 100644 index 0000000..4aaa812 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Eurocone.cs @@ -0,0 +1,22 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +public abstract class Eurocone : DrinkingWaterHeatingFitting +{ + protected virtual Dictionary _titles { get; } = new(); + + public override bool TryQueryModify(string input, out string output) + { + output = string.Empty; + var diameterMatch = _diameter.Match(input); + if (diameterMatch.Success) + { + string diameter = diameterMatch.Groups["Diameter"].Value; + if (_titles.TryGetValue(diameter, out string? title)) + { + output = title; + return true; + } + } + return false; + } +} diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs new file mode 100644 index 0000000..b9a4e09 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs @@ -0,0 +1,20 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Переходник на евроконус")] +public class EuroconeAdapter : DrinkingWaterHeatingFitting +{ + protected override string _title => "Переходник на евроконус"; + + public override bool TryQueryModify(string input, out string output) + { + output = string.Empty; + var diameterMatch = _diameter.Match(input); + if (diameterMatch.Success) + { + string diameter = diameterMatch.Groups["Diameter"].Value; + output = $"{_title} {diameter}-G 3/4"; + return true; + } + return false; + } +} \ No newline at end of file diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs new file mode 100644 index 0000000..a011f01 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs @@ -0,0 +1,11 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Резьбозажимное для трубки")] +public class EuroconeConnectionBend : DrinkingWaterHeatingFitting +{ + public override bool TryQueryModify(string input, out string output) + { + output = "Резьбозажимное соединение для металлической трубки G 3/4 -15"; + return true; + } +} \ No newline at end of file diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs new file mode 100644 index 0000000..d84a92c --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs @@ -0,0 +1,11 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Резьбозажимное flex")] +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.MLModifiers/DrinkingWaterHeatingFittings/EuroconeStabil.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeStabil.cs new file mode 100644 index 0000000..5b8c700 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/EuroconeStabil.cs @@ -0,0 +1,11 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Резьбозажимное stabil")] +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.MLModifiers/DrinkingWaterHeatingFittings/Nippel.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Nippel.cs new file mode 100644 index 0000000..12ffa72 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/Nippel.cs @@ -0,0 +1,11 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Ниппель")] +public class Nippel : DrinkingWaterHeatingFitting +{ + public override bool TryQueryModify(string input, out string output) + { + output = "К-т двух резьбозажим. нипелей с нар.резьбой 1/2х3/4"; + return true; + } +} 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.MLModifiers/DrinkingWaterHeatingFittings/SupportingClip.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/SupportingClip.cs new file mode 100644 index 0000000..955a515 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/SupportingClip.cs @@ -0,0 +1,24 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Желоб")] +public class SupportingClip : DrinkingWaterHeatingFitting +{ + protected override string _title => "Фиксирующий желоб для ПЭ-трубы"; + + public override bool TryQueryModify(string input, out string output) + { + output = string.Empty; + var diameterMatch = _diameter.Match(input); + if (diameterMatch.Success) + { + string diameter = diameterMatch.Groups["Diameter"].Value; + if (diameter == "16") + { + diameter += "/17"; + } + output = $"{_title} {diameter}"; + return true; + } + return false; + } +} \ No newline at end of file diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/TPiece.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/TPiece.cs new file mode 100644 index 0000000..274fd3d --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/TPiece.cs @@ -0,0 +1,28 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Тройник RAUTITAN")] +public class TPiece : DrinkingWaterHeatingFitting +{ + protected override string _title => "Тройник -PLATINUM"; + + public override bool TryQueryModify(string input, out string output) + { + output = string.Empty; + var diameters = _diameter.Matches(input) + .Select(match => match.Groups["Diameter"].Value) + .ToArray(); + if (diameters.Length == 1) + { + output = $"{_title} {diameters[0]}-{diameters[0]}-{diameters[0]}"; + } + else if (diameters.Length >= 3) + { + output = $"{_title} {diameters[0]}-{diameters[1]}-{diameters[2]}"; + } + else + { + return false; + } + return true; + } +} diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowDoubleWallInternal.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowDoubleWallInternal.cs new file mode 100644 index 0000000..aaeca67 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowDoubleWallInternal.cs @@ -0,0 +1,32 @@ +using System.Text.RegularExpressions; + +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Проточный настенный угольник")] +public class ThreadElbowDoubleWallInternal : DrinkingWaterHeatingFitting +{ + protected override string _title => "Проточный настенный угольник"; + private Regex _type = new(@"([\b\Wу])(?длин)([\b\w\.\s])"); + + public override bool TryQueryModify(string input, out string output) + { + output = string.Empty; + var diameterMatches = _diameter.Matches(input); + if (diameterMatches.Count == 0) + { + return false; + } + var threadMatch = _thread.Match(input); + if (!threadMatch.Success) + { + return false; + } + var typeMatch = _type.Match(input); + string[] diameters = diameterMatches.Select(x => x.Groups["Diameter"].Value).ToArray(); + string thread = threadMatch.Groups["Thread"].Value; + string type = typeMatch.Success ? "длинный" : "короткий"; + + output = $"{_title} {diameters[0]}/{(diameters.Length > 1 ? diameters[1] : diameters[0])}-Rp {thread} {type}"; + return true; + } +} \ No newline at end of file diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowExternal.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowExternal.cs new file mode 100644 index 0000000..6cebc22 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowExternal.cs @@ -0,0 +1,7 @@ +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.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallExternal.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallExternal.cs new file mode 100644 index 0000000..4df2e3e --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallExternal.cs @@ -0,0 +1,26 @@ +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Угольник настенный наружный")] +public class ThreadElbowWallExternal : DrinkingWaterHeatingFitting +{ + protected override string _title => "Угольник настенный с наружной резьбой"; + + public override bool TryQueryModify(string input, out string output) + { + output = string.Empty; + var diameterMatch = _diameter.Match(input); + if (!diameterMatch.Success) + { + return false; + } + var threadMatch = _thread.Match(input); + if (!threadMatch.Success) + { + return false; + } + string diameter = diameterMatch.Groups["Diameter"].Value; + string thread = threadMatch.Groups["Thread"].Value; + output = $"{_title} {diameter}-R {thread}"; + return true; + } +} diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallInternal.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallInternal.cs new file mode 100644 index 0000000..8a4edb3 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallInternal.cs @@ -0,0 +1,30 @@ +using System.Text.RegularExpressions; + +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Угольник настенный внутренний")] +public class ThreadElbowWallInternal : DrinkingWaterHeatingFitting +{ + protected override string _title => "Угольник настенный внутр. резьба"; + private Regex _type = new(@"([\b\Wу])(?длин)([\b\w\.\s])"); + + public override bool TryQueryModify(string input, out string output) + { + output = string.Empty; + var diameterMatch = _diameter.Match(input); + if (!diameterMatch.Success) + { + return false; + } + var threadMatch = _thread.Match(input); + if (!threadMatch.Success) + { + return false; + } + var typeMatch = _type.Match(input); + string diameter = diameterMatch.Groups["Diameter"].Value; + string thread = threadMatch.Groups["Thread"].Value; + output = $"{_title} {(typeMatch.Success ? "длинный " : string.Empty)}{diameter}-Rp {thread}"; + return true; + } +} \ No newline at end of file diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadTPieceExternal.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadTPieceExternal.cs new file mode 100644 index 0000000..30b35c3 --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadTPieceExternal.cs @@ -0,0 +1,30 @@ +using System.Text.RegularExpressions; + +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Тройник RAUTITAN резьбовой наружный")] +public class ThreadTPieceExternal : DrinkingWaterHeatingFitting +{ + protected override string _title => "Тройник с наружной резьбой"; + + public override bool TryQueryModify(string input, out string output) + { + output = string.Empty; + MatchCollection diametersMatches = _diameter.Matches(input); + if (diametersMatches.Count == 0) + { + return false; + } + string thread = _thread.Match(input).Groups["Thread"].Value; + int[] diameters = diametersMatches.Select(match => int.Parse(match.Groups["Diameter"].Value)).ToArray(); + if (diameters.Length == 1) + { + output = $"{_title} {diameters[0]}-{diameters[0]}-R {thread}"; + } + else + { + output = $"{_title} {diameters[0]}-{diameters[1]}-R {thread}"; + } + return true; + } +} \ No newline at end of file diff --git a/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadTPieceInternal.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadTPieceInternal.cs new file mode 100644 index 0000000..b57fffc --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingFittings/ThreadTPieceInternal.cs @@ -0,0 +1,42 @@ +using System.Text.RegularExpressions; + +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingFittings; + +[MLModifierKey("Тройник RAUTITAN резьбовой внутренний")] +public class ThreadTPieceInternal : DrinkingWaterHeatingFitting +{ + public override bool TryQueryModify(string input, out string output) + { + output = string.Empty; + MatchCollection diametersMatches = _diameter.Matches(input); + if (diametersMatches.Count == 0) + { + return false; + } + string thread = _thread.Match(input).Groups["Thread"].Value; + int[] diameters = diametersMatches.Select(match => int.Parse(match.Groups["Diameter"].Value)).ToArray(); + if (diameters.Length == 1) + { + if (diameters[0] < 25) + { + output = $"Тройник настенный с внутренней резьбой {diameters[0]}-Rp{thread}-{diameters[0]}"; + } + else + { + output = $"Тройник с внутр. резьбой на боков. проходе {diameters[0]}-Rp {thread}-{diameters[0]}"; + } + } + else + { + if (diameters[0] < 25) + { + output = $"Тройник настенный с внутренней резьбой {diameters[0]}-Rp{thread}-{diameters[1]}"; + } + else + { + output = $"Тройник с внутр. резьбой на боков. проходе {diameters[0]}-Rp {thread}-{diameters[1]}"; + } + } + return true; + } +} 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.MLModifiers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs b/RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs new file mode 100644 index 0000000..f83d93a --- /dev/null +++ b/RhSolutions.MLModifiers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs @@ -0,0 +1,56 @@ +using System.Text.RegularExpressions; + +namespace RhSolutions.MLModifiers.DrinkingWaterHeatingPipes; + +public abstract class DrinkingWaterHeatingPipe : IProductMLModifier +{ + protected static readonly Regex _diameter = + new(@"([\b\D]|^)?(?16|20|25|32|40|50|63)([\b\D]|$)"); + protected static readonly Regex _type = + new(@"([\b\W])(?бухт|отр|штанг)([\b\w\.\s])"); + protected virtual string _title { get; } = string.Empty; + + protected virtual Dictionary _diameterNames { get; } = new() + { + [16] = "16x2,2", + [20] = "20x2,8", + [25] = "25x3,5", + [32] = "32x4,4", + [40] = "40x5,5", + [50] = "50x6,9", + [63] = "63x8,6" + }; + + protected virtual Dictionary _makeUp { get; } = new() + { + ["бухт"] = "бухта", + ["штанг"] = "прям.отрезки", + ["отр"] = "прям.отрезки" + }; + + public bool TryQueryModify(string input, out string output) + { + output = string.Empty; + var diameterMatch = _diameter.Match(input); + if (!diameterMatch.Success) + { + return false; + } + var diameter = int.Parse(diameterMatch.Groups["Diameter"].Value); + var typeMatch = _type.Match(input); + if (typeMatch.Success) + { + var type = typeMatch.Groups["Type"].Value; + output = $"Труба {_title} {_diameterNames[diameter]} {_makeUp[type]}"; + } + else if (diameter < 32) + { + output = $"Труба {_title} {_diameterNames[diameter]} {_makeUp["бухт"]}"; + } + else + { + output = $"Труба {_title} {_diameterNames[diameter]} {_makeUp["отр"]}"; + } + return true; + } +} 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.MLModifiers/RhSolutions.MLModifiers.csproj b/RhSolutions.MLModifiers/RhSolutions.MLModifiers.csproj new file mode 100644 index 0000000..e20e8ff --- /dev/null +++ b/RhSolutions.MLModifiers/RhSolutions.MLModifiers.csproj @@ -0,0 +1,13 @@ + + + + net8.0 + enable + enable + + + + + + + diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Adapter.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Adapter.cs deleted file mode 100644 index 2956fd1..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Adapter.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Text.RegularExpressions; - -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public abstract class Adapter : DrinkingWaterHeatingFitting -{ - public override bool TryQueryModify(string input, out string output) - { - output = string.Empty; - Match diameter = _diameter.Match(input); - if (!diameter.Success) - { - return false; - } - Match thread = _thread.Match(input); - if (!thread.Success) - { - return false; - } - output = $"{_title} {diameter.Groups["Diameter"]} {thread.Groups["Thread"]}"; - return true; - } -} diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/AdapterExternal.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/AdapterExternal.cs deleted file mode 100644 index 8356c59..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/AdapterExternal.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class AdapterExternal : Adapter -{ - protected override string _title => "Переходник с наружной резьбой"; -} \ No newline at end of file diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/AdapterInternal.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/AdapterInternal.cs deleted file mode 100644 index 56e36f1..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/AdapterInternal.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class AdapterInternal : Adapter -{ - protected override string _title => "Переходник с внутренней резьбой -угольник-переходник"; -} \ No newline at end of file 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/BendFormerHeating.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/BendFormerHeating.cs deleted file mode 100644 index b0269a6..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/BendFormerHeating.cs +++ /dev/null @@ -1,24 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class BendFormerHeating : DrinkingWaterHeatingFitting -{ - protected override string _title => "Фиксатор поворота"; - 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; - if (diameter == "16") - { - diameter += "/17"; - } - var angleMatch = _angle.Match(input); - string angle = angleMatch.Success ? angleMatch.Groups["Angle"].Value : "90"; - output = $"{_title} {diameter}/{angle}°"; - return true; - } -} diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/BendFormerSanitary.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/BendFormerSanitary.cs deleted file mode 100644 index 0290ef8..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/BendFormerSanitary.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class BendFormerSanitary : DrinkingWaterHeatingFitting -{ - protected override string _title => "Фиксатор поворота с кольцами"; - - 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/ConnectionBend.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ConnectionBend.cs deleted file mode 100644 index 0ff72d7..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ConnectionBend.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Text.RegularExpressions; - -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class ConnectionBend : DrinkingWaterHeatingFitting -{ - private static readonly int[] lengths = new [] { 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 => "Трубка Г-образная"; - - public override bool TryQueryModify(string input, out string output) - { - output = string.Empty; - var match = _pattern.Match(input); - if (!match.Success) - { - return false; - } - string diameter = match.Groups["Diameter"].Value; - int length = int.Parse(match.Groups["Length"].Value); - int nearest = lengths.OrderBy(x => Math.Abs(x - length)).First(); - output = $"{_title} {diameter}/{nearest}"; - return true; - } -} diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ConnectionTee.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ConnectionTee.cs deleted file mode 100644 index 77c0204..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ConnectionTee.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class ConnectionTee : ConnectionBend -{ - protected override string _title => "Трубка Т-образная"; -} \ No newline at end of file diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Coupling.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Coupling.cs deleted file mode 100644 index 8ae446c..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Coupling.cs +++ /dev/null @@ -1,29 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class Coupling : DrinkingWaterHeatingFitting -{ - protected override string _title => "Муфта соединительная"; - - public override bool TryQueryModify(string input, out string output) - { - output = string.Empty; - var diametersMatches = _diameter.Matches(input); - if (diametersMatches.Count == 0) - { - return false; - } - 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]) - { - output = $"{_title} равнопроходная {diameters[0]}"; - } - else - { - output = $"{_title} переходная {diameters[0]}-{diameters[1]}"; - } - return true; - } -} diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs deleted file mode 100644 index 0d635b1..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/DrinkingWaterHeatingFitting.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System.Text.RegularExpressions; - -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public abstract class DrinkingWaterHeatingFitting : IProductQueryModifier -{ - protected static readonly Regex _diameter = - new(@"([\b\D]|^)?(?16|20|25|32|40|50|63)([\b\D]|$)"); - protected static readonly Regex _angle = - new(@"([\b\D])(?45|90)([\b\D]|$)"); - protected static readonly Regex _thread = - new(@"([\b\D])(?1\s+1/4|1\s+1/2|1/2|3/4|2|1)([\b\D]|$)"); - - protected virtual string _title { get; } = string.Empty; - - public virtual bool TryQueryModify(string input, out string output) - { - var match = _diameter.Match(input); - if (match.Success) - { - output = $"{_title} {match.Groups["Diameter"]}"; - return true; - } - else - { - output = string.Empty; - return false; - } - } -} 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/Elbow.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Elbow.cs deleted file mode 100644 index bb700b6..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Elbow.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class Elbow : DrinkingWaterHeatingFitting -{ - protected override string _title { get; } = "Угольник -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/Eurocone.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Eurocone.cs deleted file mode 100644 index 00047f3..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Eurocone.cs +++ /dev/null @@ -1,22 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public abstract class Eurocone : DrinkingWaterHeatingFitting -{ - protected virtual Dictionary _titles { get; } = new(); - - public override bool TryQueryModify(string input, out string output) - { - output = string.Empty; - var diameterMatch = _diameter.Match(input); - if (diameterMatch.Success) - { - string diameter = diameterMatch.Groups["Diameter"].Value; - if (_titles.TryGetValue(diameter, out string? title)) - { - output = title; - return true; - } - } - return false; - } -} diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs deleted file mode 100644 index 7f779f4..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeAdapter.cs +++ /dev/null @@ -1,19 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class EuroconeAdapter : DrinkingWaterHeatingFitting -{ - protected override string _title => "Переходник на евроконус"; - - public override bool TryQueryModify(string input, out string output) - { - output = string.Empty; - var diameterMatch = _diameter.Match(input); - if (diameterMatch.Success) - { - string diameter = diameterMatch.Groups["Diameter"].Value; - output = $"{_title} {diameter}-G 3/4"; - return true; - } - return false; - } -} \ No newline at end of file diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs deleted file mode 100644 index 554c346..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeConnectionBend.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class EuroconeConnectionBend : DrinkingWaterHeatingFitting -{ - public override bool TryQueryModify(string input, out string output) - { - output = "Резьбозажимное соединение для металлической трубки G 3/4 -15"; - return true; - } -} \ No newline at end of file diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs deleted file mode 100644 index 382e775..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeFlex.cs +++ /dev/null @@ -1,10 +0,0 @@ -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 deleted file mode 100644 index bc7c34d..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/EuroconeStabil.cs +++ /dev/null @@ -1,10 +0,0 @@ -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/DrinkingWaterHeatingFittings/Nippel.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Nippel.cs deleted file mode 100644 index 6c61184..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/Nippel.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class Nippel : DrinkingWaterHeatingFitting -{ - public override bool TryQueryModify(string input, out string output) - { - output = "К-т двух резьбозажим. нипелей с нар.резьбой 1/2х3/4"; - return true; - } -} 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/SupportingClip.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/SupportingClip.cs deleted file mode 100644 index 54eade9..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/SupportingClip.cs +++ /dev/null @@ -1,23 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class SupportingClip : DrinkingWaterHeatingFitting -{ - protected override string _title => "Фиксирующий желоб для ПЭ-трубы"; - - public override bool TryQueryModify(string input, out string output) - { - output = string.Empty; - var diameterMatch = _diameter.Match(input); - if (diameterMatch.Success) - { - string diameter = diameterMatch.Groups["Diameter"].Value; - if (diameter == "16") - { - diameter += "/17"; - } - output = $"{_title} {diameter}"; - return true; - } - return false; - } -} \ No newline at end of file diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/TPiece.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/TPiece.cs deleted file mode 100644 index e25f4c2..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/TPiece.cs +++ /dev/null @@ -1,27 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class TPiece : DrinkingWaterHeatingFitting -{ - protected override string _title => "Тройник -PLATINUM"; - - public override bool TryQueryModify(string input, out string output) - { - output = string.Empty; - var diameters = _diameter.Matches(input) - .Select(match => match.Groups["Diameter"].Value) - .ToArray(); - if (diameters.Length == 1) - { - output = $"{_title} {diameters[0]}-{diameters[0]}-{diameters[0]}"; - } - else if (diameters.Length >= 3) - { - output = $"{_title} {diameters[0]}-{diameters[1]}-{diameters[2]}"; - } - else - { - return false; - } - return true; - } -} diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowDoubleWallInternal.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowDoubleWallInternal.cs deleted file mode 100644 index d6772bf..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowDoubleWallInternal.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System.Text.RegularExpressions; - -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class ThreadElbowDoubleWallInternal : DrinkingWaterHeatingFitting -{ - protected override string _title => "Проточный настенный угольник"; - private Regex _type = new(@"([\b\Wу])(?длин)([\b\w\.\s])"); - - public override bool TryQueryModify(string input, out string output) - { - output = string.Empty; - var diameterMatches = _diameter.Matches(input); - if (diameterMatches.Count == 0) - { - return false; - } - var threadMatch = _thread.Match(input); - if (!threadMatch.Success) - { - return false; - } - var typeMatch = _type.Match(input); - string[] diameters = diameterMatches.Select(x => x.Groups["Diameter"].Value).ToArray(); - string thread = threadMatch.Groups["Thread"].Value; - string type = typeMatch.Success ? "длинный" : "короткий"; - - output = $"{_title} {diameters[0]}/{(diameters.Length > 1 ? diameters[1] : diameters[0])}-Rp {thread} {type}"; - return true; - } -} \ No newline at end of file diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowExternal.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowExternal.cs deleted file mode 100644 index 010fcc2..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowExternal.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class ThreadElbowExternal : Adapter -{ - 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/DrinkingWaterHeatingFittings/ThreadElbowWallExternal.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallExternal.cs deleted file mode 100644 index c8edfab..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallExternal.cs +++ /dev/null @@ -1,25 +0,0 @@ -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class ThreadElbowWallExternal : DrinkingWaterHeatingFitting -{ - protected override string _title => "Угольник настенный с наружной резьбой"; - - public override bool TryQueryModify(string input, out string output) - { - output = string.Empty; - var diameterMatch = _diameter.Match(input); - if (!diameterMatch.Success) - { - return false; - } - var threadMatch = _thread.Match(input); - if (!threadMatch.Success) - { - return false; - } - string diameter = diameterMatch.Groups["Diameter"].Value; - string thread = threadMatch.Groups["Thread"].Value; - output = $"{_title} {diameter}-R {thread}"; - return true; - } -} diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallInternal.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallInternal.cs deleted file mode 100644 index 6450796..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadElbowWallInternal.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System.Text.RegularExpressions; - -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class ThreadElbowWallInternal : DrinkingWaterHeatingFitting -{ - protected override string _title => "Угольник настенный внутр. резьба"; - private Regex _type = new(@"([\b\Wу])(?длин)([\b\w\.\s])"); - - public override bool TryQueryModify(string input, out string output) - { - output = string.Empty; - var diameterMatch = _diameter.Match(input); - if (!diameterMatch.Success) - { - return false; - } - var threadMatch = _thread.Match(input); - if (!threadMatch.Success) - { - return false; - } - var typeMatch = _type.Match(input); - string diameter = diameterMatch.Groups["Diameter"].Value; - string thread = threadMatch.Groups["Thread"].Value; - output = $"{_title} {(typeMatch.Success ? "длинный " : string.Empty)}{diameter}-Rp {thread}"; - return true; - } -} \ No newline at end of file diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadTPieceExternal.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadTPieceExternal.cs deleted file mode 100644 index 52f68b4..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadTPieceExternal.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System.Text.RegularExpressions; - -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class ThreadTPieceExternal : DrinkingWaterHeatingFitting -{ - protected override string _title => "Тройник с наружной резьбой"; - - public override bool TryQueryModify(string input, out string output) - { - output = string.Empty; - MatchCollection diametersMatches = _diameter.Matches(input); - if (diametersMatches.Count == 0) - { - return false; - } - string thread = _thread.Match(input).Groups["Thread"].Value; - int[] diameters = diametersMatches.Select(match => int.Parse(match.Groups["Diameter"].Value)).ToArray(); - if (diameters.Length == 1) - { - output = $"{_title} {diameters[0]}-{diameters[0]}-R {thread}"; - } - else - { - output = $"{_title} {diameters[0]}-{diameters[1]}-R {thread}"; - } - return true; - } -} \ No newline at end of file diff --git a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadTPieceInternal.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadTPieceInternal.cs deleted file mode 100644 index 3b81026..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingFittings/ThreadTPieceInternal.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System.Text.RegularExpressions; - -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingFittings; - -public class ThreadTPieceInternal : DrinkingWaterHeatingFitting -{ - public override bool TryQueryModify(string input, out string output) - { - output = string.Empty; - MatchCollection diametersMatches = _diameter.Matches(input); - if (diametersMatches.Count == 0) - { - return false; - } - string thread = _thread.Match(input).Groups["Thread"].Value; - int[] diameters = diametersMatches.Select(match => int.Parse(match.Groups["Diameter"].Value)).ToArray(); - if (diameters.Length == 1) - { - if (diameters[0] < 25) - { - output = $"Тройник настенный с внутренней резьбой {diameters[0]}-Rp{thread}-{diameters[0]}"; - } - else - { - output = $"Тройник с внутр. резьбой на боков. проходе {diameters[0]}-Rp {thread}-{diameters[0]}"; - } - } - else - { - if (diameters[0] < 25) - { - output = $"Тройник настенный с внутренней резьбой {diameters[0]}-Rp{thread}-{diameters[1]}"; - } - else - { - output = $"Тройник с внутр. резьбой на боков. проходе {diameters[0]}-Rp {thread}-{diameters[1]}"; - } - } - return true; - } -} 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/DrinkingWaterHeatingPipe.cs b/RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs deleted file mode 100644 index 1420d03..0000000 --- a/RhSolutions.QueryModifiers/DrinkingWaterHeatingPipes/DrinkingWaterHeatingPipe.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System.Text.RegularExpressions; - -namespace RhSolutions.QueryModifiers.DrinkingWaterHeatingPipes; - -public class DrinkingWaterHeatingPipe : IProductQueryModifier -{ - protected static readonly Regex _diameter = - new(@"([\b\D]|^)?(?16|20|25|32|40|50|63)([\b\D]|$)"); - protected static readonly Regex _type = - new(@"([\b\W])(?бухт|отр|штанг)([\b\w\.\s])"); - protected virtual string _title { get; } = string.Empty; - - protected virtual Dictionary _diameterNames { get; } = new() - { - [16] = "16x2,2", - [20] = "20x2,8", - [25] = "25x3,5", - [32] = "32x4,4", - [40] = "40x5,5", - [50] = "50x6,9", - [63] = "63x8,6" - }; - - protected virtual Dictionary _makeUp { get; } = new() - { - ["бухт"] = "бухта", - ["штанг"] = "прям.отрезки", - ["отр"] = "прям.отрезки" - }; - - public bool TryQueryModify(string input, out string output) - { - output = string.Empty; - var diameterMatch = _diameter.Match(input); - if (!diameterMatch.Success) - { - return false; - } - var diameter = int.Parse(diameterMatch.Groups["Diameter"].Value); - var typeMatch = _type.Match(input); - if (typeMatch.Success) - { - var type = typeMatch.Groups["Type"].Value; - output = $"Труба {_title} {_diameterNames[diameter]} {_makeUp[type]}"; - } - else if (diameter < 32) - { - output = $"Труба {_title} {_diameterNames[diameter]} {_makeUp["бухт"]}"; - } - else - { - output = $"Труба {_title} {_diameterNames[diameter]} {_makeUp["отр"]}"; - } - return true; - } -} 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.QueryModifiers/RhSolutions.QueryModifiers.csproj b/RhSolutions.QueryModifiers/RhSolutions.QueryModifiers.csproj deleted file mode 100644 index e20e8ff..0000000 --- a/RhSolutions.QueryModifiers/RhSolutions.QueryModifiers.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - net8.0 - enable - enable - - - - - - - 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 -- cgit v1.2.3