internal static void ImportarFicheroDeCalles(EntornoDeTrabajo entorno, int idArchivo) { var gestorProceso = Gestor(entorno.contextoDelProceso, entorno.contextoDelProceso.Mapeador); var rutaFichero = GestorDocumental.DescargarArchivo(entorno.contextoDelProceso, idArchivo, entorno.ProcesoIniciadoPorLaCola); var fichero = new FicheroCsv(rutaFichero); var linea = 1; entorno.CrearTraza($"Inicio del proceso"); var trazaPrcDtm = entorno.CrearTraza($"Procesando la fila {linea}"); var trazaInfDtm = entorno.CrearTraza($"Traza informativa del proceso"); foreach (var fila in fichero) { var tran = gestorProceso.IniciarTransaccion(); try { if (fila.EnBlanco) { continue; } if (fila.Columnas != 6) { throw new Exception($"la fila {linea} solo debe tener 6 columnas"); } if (fila["A"].IsNullOrEmpty() || fila["B"].IsNullOrEmpty() || fila["C"].IsNullOrEmpty() || fila["D"].IsNullOrEmpty() || fila["E"].IsNullOrEmpty() || fila["F"].IsNullOrEmpty()) { throw new Exception($"El contenido de la fila {linea} debe ser:Iso2Pais, código de provincia, código municipio, codigo de calle, nombre de la calle, sigla del tipo de vía"); } ProcesarCalleLeido(entorno, gestorProceso, iso2Pais: fila["A"], codigoProvincia: fila["B"], codigoMunicipio: fila["C"], codigoCalle: fila["D"], nombreCalle: fila["E"], siglaTipoVia: fila["F"], trazaInfDtm); gestorProceso.Commit(tran); } catch (Exception e) { gestorProceso.Rollback(tran); entorno.AnotarError($"Error al procesar la fila {linea}", e); } finally { entorno.ActualizarTraza(trazaPrcDtm, $"Procesando la fila {linea}"); linea++; } } entorno.CrearTraza($"Procesadas un total de {linea} filas"); }
public static void ImportarFicheroDeCodigosPostales(EntornoDeTrabajo entorno, int idArchivo) { var gestor = Gestor(entorno.contextoDelProceso, entorno.contextoDelProceso.Mapeador); var rutaFichero = GestorDocumental.DescargarArchivo(entorno.contextoDelProceso, idArchivo, entorno.ProcesoIniciadoPorLaCola); var fichero = new FicheroCsv(rutaFichero); var linea = 0; entorno.CrearTraza($"Inicio del proceso"); var trazaPrcDtm = entorno.CrearTraza($"Procesando la fila {linea}"); var trazaInfDtm = entorno.CrearTraza($"Traza informativa del proceso"); foreach (var fila in fichero) { var tran = gestor.IniciarTransaccion(); try { linea++; if (fila.EnBlanco) { continue; } if (fila.Columnas != 3) { throw new Exception($"la fila {linea} solo debe tener 3 columnas"); } if (fila["A"].IsNullOrEmpty()) { GestorDeErrores.Emitir($"El contenido de la fila {linea} donde se indica la provincia, celda A, no puede ser nulo"); } if (fila["B"].IsNullOrEmpty()) { GestorDeErrores.Emitir($"El contenido de la fila {linea} donde se indica el municipio, celda B, no puede ser nulo"); } if (fila["C"].IsNullOrEmpty()) { GestorDeErrores.Emitir($"El contenido de la fila {linea} donde se indica el CP, celda C, no puede ser nulo"); } ProcesarCodigosPostales(entorno, gestor, fila["A"], fila["B"], fila["C"], trazaInfDtm); gestor.Commit(tran); } catch (Exception e) { gestor.Rollback(tran); entorno.AnotarError($"Error al procesar la línea {linea}", e); } finally { entorno.ActualizarTraza(trazaPrcDtm, $"Procesando la fila {linea}"); } } entorno.CrearTraza($"Procesadas un total de {linea} filas"); }
public static void ImportarFicheroDeProvincias(EntornoDeTrabajo entorno, int idArchivo) { var gestorProceso = GestorDeProvincias.Gestor(entorno.contextoDelProceso, entorno.contextoDelProceso.Mapeador); var rutaFichero = GestorDocumental.DescargarArchivo(entorno.contextoDelProceso, idArchivo, entorno.ProcesoIniciadoPorLaCola); var fichero = new FicheroCsv(rutaFichero); var linea = 0; entorno.CrearTraza($"Inicio del proceso"); var trazaPrcDtm = entorno.CrearTraza($"Procesando la fila {linea}"); var trazaInfDtm = entorno.CrearTraza($"Traza informativa del proceso"); foreach (var fila in fichero) { var tran = gestorProceso.IniciarTransaccion(); try { linea++; if (fila.EnBlanco) { continue; } if (fila.Columnas != 5) { throw new Exception($"la fila {linea} solo debe tener 5 columnas"); } if (fila["A"].IsNullOrEmpty() || fila["B"].IsNullOrEmpty() || fila["C"].IsNullOrEmpty() || fila["D"].IsNullOrEmpty() || fila["E"].IsNullOrEmpty()) { throw new Exception($"El contenido de la fila {linea} debe ser: nombre de la provincia, nombre en ingles, iso de 2 iso de 3 y prefijo telefónico"); } ProcesarProvinciaLeida(entorno, gestorProceso, iso2Pais: fila["E"], nombreProvincia: fila["C"], sigla: fila["A"], codigo: fila["B"], prefijoTelefono: fila["D"], trazaInfDtm); gestorProceso.Commit(tran); } catch (Exception e) { gestorProceso.Rollback(tran); entorno.AnotarError(e); } finally { entorno.ActualizarTraza(trazaPrcDtm, $"Procesando la fila {linea}"); } } entorno.CrearTraza($"Procesadas un total de {linea} filas"); }
//END-POINT: desde CrudMantenimiento.Ts public JsonResult epExportar(string parametrosJson = null) { var r = new Resultado(); Dictionary <string, object> parametros = parametrosJson.ToDiccionarioDeParametros(); parametros[nameof(ElementoDto)] = typeof(TElemento).Name; parametros[nameof(Registro)] = typeof(TRegistro).Name; try { ApiController.CumplimentarDatosDeUsuarioDeConexion(Contexto, Mapeador, HttpContext); if (parametros.ContainsKey("sometido") && bool.Parse(parametros["sometido"].ToString())) { GestorDocumental.SometerExportacion(Contexto, parametros.ToJson()); r.Mensaje = $"Trabajo sometido correctamente"; } else { var opcionesDeMapeo = new Dictionary <string, object>(); opcionesDeMapeo.Add(ltrParametrosDto.DescargarGestionDocumental, false); var cantidad = !parametros.ContainsKey(ltrFiltros.cantidad) ? -1 : parametros[ltrFiltros.cantidad].ToString().Entero(); var posicion = !parametros.ContainsKey(ltrFiltros.posicion) ? 0 : parametros[ltrFiltros.posicion].ToString().Entero(); List <ClausulaDeFiltrado> filtros = !parametros.ContainsKey(ltrFiltros.filtro) || parametros[ltrFiltros.filtro].ToString().IsNullOrEmpty() ? new List <ClausulaDeFiltrado>() : JsonConvert.DeserializeObject <List <ClausulaDeFiltrado> >(parametros["filtro"].ToString()); List <ClausulaDeOrdenacion> orden = !parametros.ContainsKey(ltrFiltros.orden) || parametros[ltrFiltros.orden].ToString().IsNullOrEmpty() ? new List <ClausulaDeOrdenacion>() : JsonConvert.DeserializeObject <List <ClausulaDeOrdenacion> >(parametros["orden"].ToString()); var elementos = GestorDeElementos.LeerElementos(posicion, cantidad, filtros, orden, opcionesDeMapeo); r.Datos = GestorDocumental.DescargarExcel(Contexto, elementos.ToList()); r.Mensaje = $"Exportado"; } r.ModoDeAcceso = enumModoDeAccesoDeDatos.Consultor.Render(); r.Estado = enumEstadoPeticion.Ok; } catch (Exception e) { ApiController.PrepararError(e, r, "Error al exportar."); } return(new JsonResult(r)); }
private static void ImportarFicheroDePaises(EntornoDeTrabajo entorno, int idArchivo) { var gestor = Gestor(entorno.contextoDelProceso, entorno.contextoDelProceso.Mapeador); var rutaFichero = GestorDocumental.DescargarArchivo(entorno.contextoDelProceso, idArchivo, entorno.ProcesoIniciadoPorLaCola); var fichero = new FicheroCsv(rutaFichero); var linea = 0; entorno.CrearTraza($"Inicio del proceso"); var trazaPrcDtm = entorno.CrearTraza($"Procesando la fila {linea}"); var trazaInfDtm = entorno.CrearTraza($"Traza informativa del proceso"); foreach (var fila in fichero) { var tran = gestor.IniciarTransaccion(); try { linea++; if (fila.EnBlanco) { continue; } if (fila.Columnas != 5) { throw new Exception($"la fila {linea} solo debe tener 5 columnas"); } if (fila["A"].IsNullOrEmpty()) { GestorDeErrores.Emitir($"El contenido de la fila {linea} donde se indica el nombre del país, celda A, no puede ser nulo"); } if (fila["B"].IsNullOrEmpty()) { GestorDeErrores.Emitir($"El contenido de la fila {linea} donde se indica el nombre en Inglés, celda B, no puede ser nulo"); } if (fila["C"].IsNullOrEmpty()) { GestorDeErrores.Emitir($"El contenido de la fila {linea} donde se indica el iso2, celda C, no puede ser nulo"); } if (fila["D"].IsNullOrEmpty()) { GestorDeErrores.Emitir($"El contenido de la fila {linea} donde se indica el iso3, celda D, no puede ser nulo"); } if (fila["E"].IsNullOrEmpty()) { GestorDeErrores.Emitir($"El contenido de la fila {linea} donde se indica el prefijo telefónico, celda E, no puede ser nulo"); } ProcesarPaisLeido(entorno, gestor, fila["A"], fila["B"], fila["C"], fila["D"], fila["E"], trazaInfDtm); gestor.Commit(tran); } catch (Exception e) { gestor.Rollback(tran); entorno.AnotarError(e); } finally { entorno.ActualizarTraza(trazaPrcDtm, $"Procesando la fila {linea}"); } } entorno.CrearTraza($"Procesadas un total de {linea} filas"); }
public static JsonResult SubirArchivo(ContextoSe contexto, IMapper mapeador, HttpContext httpContext, IFormFile fichero, string rutaDestino, string extensionesValidas) { var r = new Resultado(); try { if (fichero == null) { GestorDeErrores.Emitir("No se ha identificado el fichero"); } ApiController.CumplimentarDatosDeUsuarioDeConexion(contexto, mapeador, httpContext); ValidarExtension(fichero, extensionesValidas); var rutaConFichero = $@"{GestorDeVariables.RutaDeDescarga}\{fichero.FileName}"; using (var stream = new FileStream(rutaConFichero, FileMode.Create)) { fichero.CopyTo(stream); } if (rutaDestino.IsNullOrEmpty()) { r.Datos = GestorDocumental.SubirArchivo(contexto, rutaConFichero, mapeador); } else { rutaDestino = $@"{GestorDeVariables.RutaBase}{rutaDestino.Replace("/", @"\")}"; if (!Directory.Exists(rutaDestino)) { Directory.CreateDirectory(rutaDestino); } int numero = 1; var ficheroSinExtension = Path.GetFileNameWithoutExtension(fichero.FileName).Replace(" ", "_"); var extension = Path.GetExtension(fichero.FileName); while (System.IO.File.Exists($@"{rutaDestino}\{ficheroSinExtension}{extension}")) { if (numero == 1) { ficheroSinExtension = $"{ficheroSinExtension}_{numero}"; } else { ficheroSinExtension = ficheroSinExtension.Replace($"_{numero - 1}", $"_{numero}"); } numero++; } System.IO.File.Move(rutaConFichero, $@"{rutaDestino}\{ficheroSinExtension}{extension}"); r.Datos = $@"{ficheroSinExtension}{extension}"; } r.Estado = enumEstadoPeticion.Ok; r.Mensaje = "fichero subido"; } catch (Exception e) { r.Estado = enumEstadoPeticion.Error; r.consola = GestorDeErrores.Detalle(e); if (e.Data.Contains(GestorDeErrores.Datos.Mostrar) && (bool)e.Data[GestorDeErrores.Datos.Mostrar] == true) { r.Mensaje = e.Message; } else { r.Mensaje = $"No se ha podido subir el fichero. {(e.Data.Contains(GestorDeErrores.Datos.Mostrar) && (bool)e.Data[GestorDeErrores.Datos.Mostrar] == true ? e.Message : "")}"; } } return(new JsonResult(r)); }