/// Verifica si los archivos enviados son los que se deberian enviar segun el mes y el tipo de entidad private bool validarArchivosEnviadosNombres(List <ArchivoCargado> archivosEnv) { bool correcto = true; // se obtiene la lita de archivos que corresponden a la compañia segun el mes List <Archivo> archivosValidos = ArchivosController.getArchivosDeEntidadMes(this.codigoEntidad, this.mesControl); if (archivosValidos.Count != archivosEnv.Count) { correcto = false; // EE-02 "La cantidad de archivos enviados no corresponde this.errores.Add(err("002", "", "deberían ser " + archivosValidos.Count + " archivos y se cargaron: " + archivosEnv.Count + " .", 0, 0)); } foreach (Archivo arch in archivosValidos) { string nombreArchivo = this.nombreArchivo(codigoEntidad, mesControl, anoControl, arch.codigo); ArchivoCargado carg = (from i in archivosEnv where i.nombre.ToUpper() == nombreArchivo.ToUpper() select i).FirstOrDefault(); if (carg == null) { correcto = false; // EE-03 "Falta el archivo " this.errores.Add(err("003", nombreArchivo, nombreArchivo, 0, 0)); } else { carg.codigo = arch.codigo; carg.validacionTexto = arch.validacion; } } return(correcto); }
[Authorize(Roles = "carga_informacion,operador,administrador")] // definir sólo los roles que pueden invocar a esta acción public object validacionFormato([FromBody] dynamic objetoRecibido) { try { // my code string token = HttpHelpers.GetTokenFromHeader(HttpContext); if (token == "") { return(Unauthorized()); } Base helper = new Base(AppSettings, token, HttpContext.Connection.RemoteIpAddress.ToString()); // some stuff //if (helper.CiaId == "101") //{ //} // end my code if (helper.Role == "carga_informacion") { objetoRecibido.cod_entidad = helper.CiaId; } inicializaDatos(objetoRecibido.cod_entidad.ToString()); bool correcto = true; int validezF = 4; //valido foreach (var item in objetoRecibido.archivosCargados) { ArchivoCargado env = new ArchivoCargado(); env.nombre = item.nombre.ToString(); env.texto = item.texto.ToString(); archivosEnv.Add(env); } // #### PROCESOS DE VALIDACION this.resultado.erroresF = this.errores; // #### Verifica si la entidad con la que el usuario se hace log, existe y esta activa, caso contrario se sale con errorF: error de Entida no existente if (correcto && !validarEntidad()) { correcto = false; validezF = 1; return(resultado); } // #### Verifica que los archivos enviados son los correctos correctos. Si no estan todos los archivos correctos, retorna mostrando los errores if (correcto && !validarArchivosEnviadosNombres(this.archivosEnv)) { correcto = false; validezF = 1; } // #### SI LOS ARCHIVOS SON LOS CORRECTOS SE REALIZA ESTA PARTE // convierte el campo validaciones a un JSON y transforma el texto en un Array de filas y columnas if (correcto) { this.transformaDatos(this.archivosEnv); } // #### VERIFICA LAS VALIDACIONES JSON // #### Se realiza la Validacion de formato de texto (columnas, y typos de datos), // llegando aqui se cargan las listas de departamentos, monedas, modalidades, modalidadesRamos, modalidadesRamosPolizas // la funcion devuelve V EE o A; segun el error o advertencia en caso de las validaciones mayor que 0. string estadoValidaFormato = ""; if (correcto) { estadoValidaFormato = this.validarFormatoTexto(this.archivosEnv); } if (correcto && estadoValidaFormato != "V") //si es distinto de valido se setea el estadoEnvio segun el error ////////////////////////// { validezF = estadoValidaFormato == "EE" ? 1 : 3; // es Error 1: EE o 3: Advertencia correcto = estadoValidaFormato == "EE" ? false : true; // En esta validacion de formato solo puede ser EE A o V, si no es EE es correcto } // antes de insertar se eliminan los registros de los archivos , de igual manera si hubieron errors se eliminan los registros eliminarDeTablaVal("A", this.codigoEntidad, this.fechaCorte); eliminarDeTablaVal("B", this.codigoEntidad, this.fechaCorte); eliminarDeTablaVal("C", this.codigoEntidad, this.fechaCorte); eliminarDeTablaVal("D", this.codigoEntidad, this.fechaCorte); eliminarDeTablaVal("E", this.codigoEntidad, this.fechaCorte); eliminarDeTablaVal("F", this.codigoEntidad, this.fechaCorte); eliminarDeTablaVal("G", this.codigoEntidad, this.fechaCorte); eliminarDeTablaVal("H", this.codigoEntidad, this.fechaCorte); //ingresa los datos a las tablas if (correcto) { foreach (var arch in this.archivosEnv) { int i = 0; foreach (var registro in arch.objetosFila) { try { insertarITF(arch.codigo, registro); i++; } catch (System.Exception ex) { // EE - 00 "No se pudo guardar la información, por favor intente de enviar nuevamente todos los archivos, ", errores.Add(err("000", arch.nombre, "Si continua el error, comuniquese con la APS, comunicando el siguiente mensaje: \n Error de tabla al insertar, " + ex.Message, 0, 0)); eliminarDeTablaVal("A", this.codigoEntidad, this.fechaCorte); eliminarDeTablaVal("B", this.codigoEntidad, this.fechaCorte); eliminarDeTablaVal("C", this.codigoEntidad, this.fechaCorte); eliminarDeTablaVal("D", this.codigoEntidad, this.fechaCorte); eliminarDeTablaVal("E", this.codigoEntidad, this.fechaCorte); eliminarDeTablaVal("F", this.codigoEntidad, this.fechaCorte); eliminarDeTablaVal("G", this.codigoEntidad, this.fechaCorte); eliminarDeTablaVal("H", this.codigoEntidad, this.fechaCorte); correcto = false; validezF = 1; break; } } } } // borra los errores relacionados con seguiiento_envios no vigentes ErroresController.borrarErroresDelLaMismaApertura(this.codigoEntidad); int idSeguimiento = SgmntController.insertarSeguimientoEnvio(this.codigoEntidad, validezF); int estadoValidez = 4; foreach (Error errorF in this.errores) { errorF.id_seguimiento_envio = idSeguimiento; errorF.creado_por = helper.UsuarioId; ErroresController.insertarError(errorF); errorF.desc_error = descError(errorF.cod_error); if (errorF.estadoValidez < estadoValidez) { estadoValidez = errorF.estadoValidez; } } con.Close(); List <dynamic> constantes = ConstantesController.obtieneConstantesDeDimension("estado_seguimiento"); dynamic estadoSeg = constantes.Where(x => x.codigo == estadoValidez.ToString()).LastOrDefault(); this.resultado.status = "success"; this.resultado.validoF = correcto; this.resultado.estadoValidez = estadoValidez; this.resultado.estadoValidez_desc = estadoSeg.valor + " - " + estadoSeg.descripcion; this.resultado.tipoValidacion = "formato"; this.resultado.erroresF = this.errores; // resultado.env = this.archivosEnv; return(this.resultado); } catch (Exception ex) { return(new { status = "error", mensaje = ex.Message }); } }