예제 #1
0
        /*Валидирует файл содержащий партии (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);
        }