diff options
author | Serghei Cebotari <serghei@cebotari.ru> | 2023-07-25 08:45:01 +0300 |
---|---|---|
committer | Serghei Cebotari <serghei@cebotari.ru> | 2023-07-25 08:45:01 +0300 |
commit | 47c3b19a1786637dad93be44836dc982e833013e (patch) | |
tree | beb65472a82b0f903c40ec255e55392c983217e6 | |
parent | 1f5aebe62ac1d20d087cc110dafda759158d0fa2 (diff) |
Price list validation optimization
-rw-r--r-- | RhSolutions.AddIn/Tools/WorksheetExtensions.cs | 38 |
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) |