/*Валидирует файл содержащий партии (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); }
//Валидирует файл содержащий название материала и его id public static bool validateMaterialsFile(string filePath) { Excel xlsxfile = new Excel(); xlsxfile.FileOpen(filePath); Nomenclatures.validateColumnsInFile(columnsInMaterials, xlsxfile.Rows); Regex regex = new Regex(@"[А-Яа-я]+\s?[А-Яа-я]*$"); for (int i = 1; i < xlsxfile.Rows.Count; i++) { if (!Nomenclatures.validate(regex, xlsxfile.Rows[i][1])) { throw new NomenclaturesException($"Не верное имя сырья, ожидается:\n 'Одно или два слова на кирилице разделенных пробелом или переносом строки'\n получено:\n Имя: {xlsxfile.Rows[i][1]}\n Строка: {i}"); } } return(true); }
//Валидирует файл с записями о названиях и id машин public static bool validateMachineToolsFile(string filePath) { Excel xlsxfile = new Excel(); xlsxfile.FileOpen(filePath); Nomenclatures.validateColumnsInFile(columnsInOvensIdName, 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($"Не верное имя печи, ожидается:\n 'Печь [номер] (например: Печь 7)'\n получено:\n Имя: {xlsxfile.Rows[i][1]}\n Строка: {i}"); } } return(true); }
//Валидирует файл содержащий характеристики печей public static bool validateSpecificationFile(string filePath) { Excel xlsxfile = new Excel(); xlsxfile.FileOpen(filePath); Nomenclatures.validateColumnsInFile(columnsInOvensSpecifications, xlsxfile.Rows); Regex regex = new Regex(@"[0-9]+$"); for (int j = 0; j < xlsxfile.Rows[0].Count; j++) { for (int i = 1; i < xlsxfile.Rows.Count; i++) { if (!Nomenclatures.validate(regex, xlsxfile.Rows[i][j])) { throw new NomenclaturesException($"Ожидается числовое значение в столбце {xlsxfile.Rows[0][j]}, \n получено:\n id: {xlsxfile.Rows[i][j]}\n Строка: {i}"); } } } return(true); }