aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSerghei Cebotari <serghei@cebotari.ru>2023-11-02 23:07:06 +0300
committerSerghei Cebotari <serghei@cebotari.ru>2023-11-02 23:07:06 +0300
commit8a8fc397bfb8cb9d2eed1f1c87b93aece0274c74 (patch)
treeb0995f253fd555dc96d445a5521ff7ba2c6829fb
parentd999a0b98a6923a8027eead46a43bcd50ca8d713 (diff)
Add Couplings calculator
-rw-r--r--RhSolutions.AddIn/AddIn/RhSolutionsAddIn.cs2
-rw-r--r--RhSolutions.AddIn/Services/CouplingsCalculator.cs9
-rw-r--r--RhSolutions.AddIn/Services/IFittingsCalculator.cs6
-rw-r--r--RhSolutions.AddIn/Services/ISleevesCalculator.cs6
-rw-r--r--RhSolutions.AddIn/Services/SleevesCalculator.cs4
-rw-r--r--RhSolutions.AddIn/Tools/SleevesTool.cs6
-rw-r--r--RhSolutions.AddIn/Tools/ToolFactory.cs2
-rw-r--r--RhSolutions.Tests/CanFillSleeves.cs4
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);