aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Chebotar <s.chebotar@gmail.com>2023-05-23 15:02:14 +0300
committerSergey Chebotar <s.chebotar@gmail.com>2023-05-23 15:02:14 +0300
commit7f8455d86804d4172dfced02b709ac74bc24b517 (patch)
treec8bbc080dcbc9b9d4cb1b606426f8136d8501c30
parent9d2f386a7491a3ceb31e908f1070e42ee616d3b7 (diff)
Fix exception on guessing single row
-rw-r--r--RhSolutions.AddIn/Services/GuessReader.cs29
1 files changed, 18 insertions, 11 deletions
diff --git a/RhSolutions.AddIn/Services/GuessReader.cs b/RhSolutions.AddIn/Services/GuessReader.cs
index 27149c0..1f1d46a 100644
--- a/RhSolutions.AddIn/Services/GuessReader.cs
+++ b/RhSolutions.AddIn/Services/GuessReader.cs
@@ -14,7 +14,7 @@ public class GuessReader : IReader
public Dictionary<Product, double> ReadProducts(Range range)
{
- _progressBar = new("Ищу колонки со значениями", range.Columns.Count);
+ _progressBar = new("Поиск возможных пар артикул-количество...", range.Columns.Count);
int? productColumnIndex = null;
List<int> amountColumnIndeces = new();
@@ -74,7 +74,7 @@ public class GuessReader : IReader
private bool IsProductColumn(Range column)
{
int successCounter = 0;
- object[,] cells = column.Value2;
+ var cells = column.Value2;
if (cells == null)
{
@@ -82,8 +82,8 @@ public class GuessReader : IReader
}
for (int row = 1; row < column.Rows.Count + 1; row++)
- {
- object currentCell = cells[row, 1];
+ {
+ object currentCell = column.Rows.Count == 1 ? cells : cells[row, 1];
if (currentCell == null)
{
continue;
@@ -106,7 +106,7 @@ public class GuessReader : IReader
private bool IsAmountColumn(Range column)
{
int successCounter = 0;
- object[,] cells = column.Value2;
+ var cells = column.Value2;
if (cells == null)
{
@@ -115,7 +115,7 @@ public class GuessReader : IReader
for (int row = 1; row < column.Rows.Count + 1; row++)
{
- object currentCell = cells[row, 1];
+ object currentCell = column.Rows.Count == 1 ? cells : cells[row, 1];
if (currentCell == null)
{
continue;
@@ -144,22 +144,29 @@ public class GuessReader : IReader
}
successCounter++;
+
+ if (successCounter > 5)
+ {
+ return true;
+ }
}
- return successCounter > 1;
+ return successCounter > 0;
}
private Dictionary<Product, double> GetDictionaryFromColumns(Range productColumn, Range amountColumn)
{
Dictionary<Product, double> result = new();
+ _progressBar = new("Заполняю словарь значений...", productColumn.Rows.Count);
for (int row = 1; row < productColumn.Rows.Count + 1; row++)
{
- object[,] amountCells = amountColumn.Value2;
- object currentAmountCell = amountCells[row, 1];
+ _progressBar.Update();
+ var amountCells = amountColumn.Value2;
+ object currentAmountCell = productColumn.Rows.Count == 1 ? amountCells : amountCells[row, 1];
- object[,] productCells = productColumn.Value2;
- object currentProductCell = productCells[row, 1];
+ var productCells = productColumn.Value2;
+ object currentProductCell = productColumn.Rows.Count == 1 ? productCells : productCells[row, 1];
double amountValue = 0.0;