/*Валидирует файл содержащий партии (id и nomenclatuer id) * если в файле партий есть id которого небыло в файле с материалами выбрасывается исключение*/ public static bool validatePartiesFile(string filePath) { Excel xlsxfile = new Excel(); xlsxfile.FileOpen(filePath); Nomenclatures.validateColumnsInFile(columnsInParties, xlsxfile.Rows); Regex regex = new Regex(@"[0-9]+$"); for (int i = 1; i < xlsxfile.Rows.Count; i++) { if (!Nomenclatures.validate(regex, xlsxfile.Rows[i][1])) { throw new NomenclaturesException($"Не верное id материала, ожидается:\n 'Числовое значение в столбце nomenclature id'\n получено:\n Имя: {xlsxfile.Rows[i][1]}\n Строка: {i}"); } if (!Nomenclatures.checkMaterialInParties(xlsxfile.Rows[i][1])) { throw new DataIntegrityException($"Не найден данный id в списке материалов:\n получено:\n id: {xlsxfile.Rows[i][1]}\n Строка: {i}"); } if (!Nomenclatures.canMaterialProcessedOrNot(xlsxfile.Rows[i][1])) { throw new DataIntegrityException($"Ни одна из загруженных машин не обрабатывает материал {viewMaterialById(xlsxfile.Rows[i][1])} :\n получено:\n id: {xlsxfile.Rows[i][1]}\n Название: {viewMaterialById(xlsxfile.Rows[i][1])} \n Строка: {i}"); } } return(true); }