diff options
author | Serghei Cebotari <serghei@cebotari.ru> | 2023-11-02 23:07:06 +0300 |
---|---|---|
committer | Serghei Cebotari <serghei@cebotari.ru> | 2023-11-02 23:07:06 +0300 |
commit | 8a8fc397bfb8cb9d2eed1f1c87b93aece0274c74 (patch) | |
tree | b0995f253fd555dc96d445a5521ff7ba2c6829fb | |
parent | d999a0b98a6923a8027eead46a43bcd50ca8d713 (diff) |
Add Couplings calculator
-rw-r--r-- | RhSolutions.AddIn/AddIn/RhSolutionsAddIn.cs | 2 | ||||
-rw-r--r-- | RhSolutions.AddIn/Services/CouplingsCalculator.cs | 9 | ||||
-rw-r--r-- | RhSolutions.AddIn/Services/IFittingsCalculator.cs | 6 | ||||
-rw-r--r-- | RhSolutions.AddIn/Services/ISleevesCalculator.cs | 6 | ||||
-rw-r--r-- | RhSolutions.AddIn/Services/SleevesCalculator.cs | 4 | ||||
-rw-r--r-- | RhSolutions.AddIn/Tools/SleevesTool.cs | 6 | ||||
-rw-r--r-- | RhSolutions.AddIn/Tools/ToolFactory.cs | 2 | ||||
-rw-r--r-- | RhSolutions.Tests/CanFillSleeves.cs | 4 |
8 files changed, 24 insertions, 15 deletions
diff --git a/RhSolutions.AddIn/AddIn/RhSolutionsAddIn.cs b/RhSolutions.AddIn/AddIn/RhSolutionsAddIn.cs index b7634a9..a7f6796 100644 --- a/RhSolutions.AddIn/AddIn/RhSolutionsAddIn.cs +++ b/RhSolutions.AddIn/AddIn/RhSolutionsAddIn.cs @@ -25,7 +25,7 @@ public sealed class RhSolutionsAddIn : IExcelAddIn .AddSingleton<IAddInConfiguration, AddInConfiguration>() .AddSingleton<IDatabaseClient, DatabaseClient>() .AddSingleton<ICurrencyClient, CurrencyClient>() - .AddSingleton<ISleevesCalculator, SleevesCalculator>() + .AddSingleton<IFittingsCalculator, SleevesCalculator>() .AddTransient<IFileDialog, FileDialog>(); Services.AddSingleton<WriterFactory>(); diff --git a/RhSolutions.AddIn/Services/CouplingsCalculator.cs b/RhSolutions.AddIn/Services/CouplingsCalculator.cs new file mode 100644 index 0000000..9ff4a98 --- /dev/null +++ b/RhSolutions.AddIn/Services/CouplingsCalculator.cs @@ -0,0 +1,9 @@ +namespace RhSolutions.Services; + +public class CouplingsCalculator : IFittingsCalculator +{ + public Dictionary<Product, double> Calculate(Dictionary<Product, double> products) + { + throw new NotImplementedException(); + } +} diff --git a/RhSolutions.AddIn/Services/IFittingsCalculator.cs b/RhSolutions.AddIn/Services/IFittingsCalculator.cs new file mode 100644 index 0000000..ffead2b --- /dev/null +++ b/RhSolutions.AddIn/Services/IFittingsCalculator.cs @@ -0,0 +1,6 @@ +namespace RhSolutions.Services; + +public interface IFittingsCalculator +{ + public Dictionary<Product, double> Calculate(Dictionary<Product, double> products); +} diff --git a/RhSolutions.AddIn/Services/ISleevesCalculator.cs b/RhSolutions.AddIn/Services/ISleevesCalculator.cs deleted file mode 100644 index eba37df..0000000 --- a/RhSolutions.AddIn/Services/ISleevesCalculator.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace RhSolutions.Services; - -public interface ISleevesCalculator -{ - public Dictionary<Product, double> CalculateSleeves(Dictionary<Product, double> products); -} diff --git a/RhSolutions.AddIn/Services/SleevesCalculator.cs b/RhSolutions.AddIn/Services/SleevesCalculator.cs index acd9336..84dcbbb 100644 --- a/RhSolutions.AddIn/Services/SleevesCalculator.cs +++ b/RhSolutions.AddIn/Services/SleevesCalculator.cs @@ -2,14 +2,14 @@ namespace RhSolutions.Services; -public class SleevesCalculator : ISleevesCalculator +public class SleevesCalculator : IFittingsCalculator { private const string doublePattern = @"((?i)равнопроходная|угольник\s+90|угольник\s+45|Т-образная|Комплект\s+трубок(?i))(.+?\b(?<Sleeve>16|20|25|32|40|50|63)\b)+"; private const string singlePattern = @"((?i)муфта|тройник|переходник|угольник|штуцер|Г-образная|заглушка(?i))(.+?\b(?<Sleeve>16|20|25|32|40|50|63)\b)+"; - public Dictionary<Product, double> CalculateSleeves(Dictionary<Product, double> products) + public Dictionary<Product, double> Calculate(Dictionary<Product, double> products) { Dictionary<string, double> result = new() { diff --git a/RhSolutions.AddIn/Tools/SleevesTool.cs b/RhSolutions.AddIn/Tools/SleevesTool.cs index c43bc6c..26fa0ee 100644 --- a/RhSolutions.AddIn/Tools/SleevesTool.cs +++ b/RhSolutions.AddIn/Tools/SleevesTool.cs @@ -2,9 +2,9 @@ internal class SleevesTool : Tool { - private readonly ISleevesCalculator _sleevesCaluculator; + private readonly IFittingsCalculator _sleevesCaluculator; - public SleevesTool(ReaderFactory readerFactory, WriterFactory writerFactory, ISleevesCalculator sleevesCaluculator) : base(readerFactory, writerFactory) + public SleevesTool(ReaderFactory readerFactory, WriterFactory writerFactory, IFittingsCalculator sleevesCaluculator) : base(readerFactory, writerFactory) { _sleevesCaluculator = sleevesCaluculator; } @@ -15,7 +15,7 @@ internal class SleevesTool : Tool Worksheet worksheet = app.ActiveWorkbook.ActiveSheet; _reader = _readerFactory.GetReader("Excel"); var products = _reader.ReadProducts(new[] { worksheet }); - var sleeves = _sleevesCaluculator.CalculateSleeves(products.Select(p => p.Item2).First()); + var sleeves = _sleevesCaluculator.Calculate(products.Select(p => p.Item2).First()); _writer = _writerFactory.GetWriter("CurrentPrice"); _writer.WriteProducts(sleeves); } diff --git a/RhSolutions.AddIn/Tools/ToolFactory.cs b/RhSolutions.AddIn/Tools/ToolFactory.cs index 1c71042..bdc9bf9 100644 --- a/RhSolutions.AddIn/Tools/ToolFactory.cs +++ b/RhSolutions.AddIn/Tools/ToolFactory.cs @@ -4,7 +4,7 @@ internal class ToolFactory { static ReaderFactory readerFactory = RhSolutionsAddIn.ServiceProvider.GetService<ReaderFactory>(); static WriterFactory writerFactory = RhSolutionsAddIn.ServiceProvider.GetService<WriterFactory>(); - static ISleevesCalculator sleevesCaluculator = RhSolutionsAddIn.ServiceProvider.GetService<ISleevesCalculator>(); + static IFittingsCalculator sleevesCaluculator = RhSolutionsAddIn.ServiceProvider.GetService<IFittingsCalculator>(); public Tool GetTool(string toolName) { diff --git a/RhSolutions.Tests/CanFillSleeves.cs b/RhSolutions.Tests/CanFillSleeves.cs index aedad09..ca00407 100644 --- a/RhSolutions.Tests/CanFillSleeves.cs +++ b/RhSolutions.Tests/CanFillSleeves.cs @@ -6,7 +6,7 @@ namespace RhSolutions.Tests; public class CanFillSleeves : IDisposable { private RhSolutionsAddIn _addIn; - private ISleevesCalculator _calculator; + private IFittingsCalculator _calculator; private IReader _reader; private IWriter _writer; private Worksheet _worksheet; @@ -25,7 +25,7 @@ public class CanFillSleeves : IDisposable public void CanCalculateSleeves() { var products = _reader.ReadProducts(new[] { _worksheet }); - var sleeves = _calculator.CalculateSleeves(products.First().Item2); + var sleeves = _calculator.Calculate(products.First().Item2); _writer.WriteProducts(sleeves); Assert.Equal(25, _worksheet.Range["E2"].Value); |