private void Validator_Row(List <TemplateFormatCAC> templateCAC, IXLTable table) { try { using (table) { DTOValidacionArchivo validation; int header_index = table.HeadersRow().RowNumber(); int rowCount = table.RowsUsed().Count(); for (int row_index = 1; row_index <= rowCount; row_index++) { var row = table.Row(row_index); if (row_index != header_index) { bool existErrors = false; row.DeleteComments(); row.Clear(XLClearOptions.Formats); foreach (var cell in row.Cells()) { int columnNumber = cell.Address.ColumnNumber - 1 > 0 ? (cell.Address.ColumnNumber - 1) : 0; var field = table.Fields.Where(m => m.Index == columnNumber).FirstOrDefault(); var headerrow = field != null?templateCAC.Where(m => m.Name == field.Name).FirstOrDefault() : null; if (headerrow != null) { bool response = Validator_Cell(headerrow, cell); if (response) { existErrors = response; } } else { var fieldname = field != null ? field.Name : ""; validation = new DTOValidacionArchivo() { FechaCreacion = DateTime.Now.ToString(Configuration.GetValueConf(Constants.DateFormat)), Descripcion = string.Format(Resource_DefaultMessage.ERROR_COLUMN_NOT_ALLOWED, fieldname), Valor = cell.Value.ToString(), Celda = $"{cell.Address.ColumnLetter}{cell.Address.RowNumber}", Fila = $"{row_index}", Columna = $"{cell.Address.ColumnLetter}" }; Auditor.SaveLog(string.Format(Resource_DefaultMessage.CONTROL_VALUE, nameof(FileProcessBP.Validator_Row), validation.Columna, validation.Valor, "ERROR_COLUMN_NOT_ALLOWED", validation.ToString(), table.Worksheet.Name)); validator_result.Add(validation); } } if (existErrors == false) { Auditor.SaveLog(null, table.Worksheet.Name, row_index, row); } existErrors = false; } Auditor.SaveLog("true", table.Worksheet.Name, row_index, row); } } } catch (Exception ex) { validator_result.Add(ExceptionWriter(ex)); throw ex; } }