aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSerghei Cebotari <serghei@cebotari.ru>2023-07-25 08:45:01 +0300
committerSerghei Cebotari <serghei@cebotari.ru>2023-07-25 08:45:01 +0300
commit47c3b19a1786637dad93be44836dc982e833013e (patch)
treebeb65472a82b0f903c40ec255e55392c983217e6
parent1f5aebe62ac1d20d087cc110dafda759158d0fa2 (diff)
Price list validation optimization
-rw-r--r--RhSolutions.AddIn/Tools/WorksheetExtensions.cs38
1 files changed, 24 insertions, 14 deletions
diff --git a/RhSolutions.AddIn/Tools/WorksheetExtensions.cs b/RhSolutions.AddIn/Tools/WorksheetExtensions.cs
index 9d975d0..ee2fcdf 100644
--- a/RhSolutions.AddIn/Tools/WorksheetExtensions.cs
+++ b/RhSolutions.AddIn/Tools/WorksheetExtensions.cs
@@ -14,22 +14,32 @@ public static class WorksheetExtensions
public static bool IsValidSource(this Worksheet worksheet)
{
- Range amountCell;
- Range skuCell;
- Range programLineCell;
- Range nameCell;
- Range measureCell;
+ Range headerRow;
- Range[] cells = new[]
+ string[] fields = pricelistParameters.Values
+ .Where(v => v != "Прежний материал")
+ .ToArray();
+
+ var value = worksheet.Cells.Find(fields[0]);
+
+ if (value == null)
+ {
+ return false;
+ }
+ else
{
- amountCell = worksheet.Cells.Find(pricelistParameters["Amount"]),
- skuCell = worksheet.Cells.Find(pricelistParameters["Sku"]),
- programLineCell = worksheet.Cells.Find(pricelistParameters["ProductLine"]),
- nameCell = worksheet.Cells.Find(pricelistParameters["Name"]),
- measureCell = worksheet.Cells.Find(pricelistParameters["Measure"])
- };
-
- return cells.All(x => x != null);
+ headerRow = value.EntireRow;
+ }
+
+ for (int i = 1; i < fields.Length; i++)
+ {
+ if (headerRow.Find(fields[i]) == null)
+ {
+ return false;
+ }
+ }
+
+ return true;
}
public static void AddValue(this Range range, double value)