public static void BorrarTrazas(EntornoDeTrabajo entorno) { entorno.CrearTraza("Inicio del proceso"); var ficheros = Directory.GetFiles(TrazaSql.ruta); var borrados = 0; var errores = 0; var trazaDtm = entorno.CrearTraza("Fichero a borrar"); foreach (var fichero in ficheros) { if (File.Exists(fichero)) { try { entorno.ActualizarTraza(trazaDtm, $"Borrando el fichero {Path.GetFileName(fichero)}"); File.Delete(fichero); borrados++; } catch (Exception e) { entorno.AnotarError($"Error al borrar el fichero {Path.GetFileName(fichero)}", e); errores++; } } } entorno.CrearTraza($"Se han borrado {borrados} y {errores} no se han podido borrar"); }
private static TipoDeViaDtm ProcesarTipoDeViaLeido(EntornoDeTrabajo entorno, GestorDeTiposDeVia gestor, string sigla, string nombre, TrazaDeUnTrabajoDtm trazaInfDtm) { ParametrosDeNegocio operacion; var p = gestor.LeerRegistro(nameof(TipoDeViaDtm.Sigla), sigla, errorSiNoHay: false, errorSiHayMasDeUno: true, traqueado: true, conBloqueo: false, false); //var p = LeerTipoDeViaPorSigla(entorno.contextoDelProceso, sigla, paraActualizar: true); if (p == null) { p = new TipoDeViaDtm(); p.Sigla = sigla; p.Nombre = nombre; operacion = new ParametrosDeNegocio(enumTipoOperacion.Insertar); entorno.ActualizarTraza(trazaInfDtm, $"Creando el tipo de vía {sigla}"); } else { if (p.Nombre != nombre) { p.Nombre = nombre; operacion = new ParametrosDeNegocio(enumTipoOperacion.Modificar); entorno.ActualizarTraza(trazaInfDtm, $"Modificando el tipo de vía {sigla}"); entorno.CrearTraza($"Existe un tipo de vía con la sigla {p.Sigla}, el nombre es {p.Nombre}, vaya al mantenimiento si quiere cambiar el nombre por {nombre}"); } else { entorno.ActualizarTraza(trazaInfDtm, $"El tipo de vía {sigla} ya existe"); return(p); } } return(gestor.PersistirRegistro(p, operacion)); }
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"); }
public static void Exportacion(EntornoDeTrabajo entorno) { Dictionary <string, object> parametros = entorno.TrabajoDeUsuario.Parametros.ToDiccionarioDeParametros(); if (!parametros.ContainsKey(nameof(ElementoDto))) { GestorDeErrores.Emitir("No se ha indicado el ElementoDto de exportación"); } if (!parametros.ContainsKey(nameof(Registro))) { GestorDeErrores.Emitir("No se ha indicado el Registro de exportación"); } var gestor = NegociosDeSe.CrearGestor(entorno.contextoDelProceso, parametros[nameof(Registro)].ToString(), parametros[nameof(ElementoDto)].ToString()); 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 opcionesDeMapeo = new Dictionary <string, object>(); opcionesDeMapeo.Add(ltrParametrosDto.DescargarGestionDocumental, false); Type clase = gestor.GetType(); MethodInfo metodo = clase.GetMethod(nameof(GestorDeElementos <ContextoSe, Registro, ElementoDto> .LeerElementos)); dynamic elementos = metodo.Invoke(gestor, new object[] { posicion, cantidad, filtros, orden, opcionesDeMapeo }); var ficheroConRuta = GenerarExcel(entorno.contextoDelProceso, elementos); GestorDeCorreos.CrearCorreoPara(entorno.contextoDelProceso , new List <string> { parametros[ltrFltCorreosDto.receptores].ToString() } , "Exportación solicitada" , "Se le adjunta el fichero con la exportación solicitada" , new List <TipoDtoElmento>() , new List <string>() { ficheroConRuta } ); }
private static CodigoPostalDtm ProcesarCodigosPostales(EntornoDeTrabajo entorno, GestorDeCodigosPostales gestor, string provincia, string municipio, string cp, TrazaDeUnTrabajoDtm trazaInfDtm) { ParametrosDeNegocio operacion; var codigoPostalDtm = gestor.LeerRegistro(nameof(CodigoPostalDtm.Codigo), cp, errorSiNoHay: false, errorSiHayMasDeUno: true, traqueado: false, conBloqueo: false, aplicarJoin: false); if (codigoPostalDtm == null) { codigoPostalDtm = new CodigoPostalDtm(); codigoPostalDtm.Codigo = cp; operacion = new ParametrosDeNegocio(enumTipoOperacion.Insertar); entorno.ActualizarTraza(trazaInfDtm, $"Creando el codigo postal {cp}"); } else { entorno.ActualizarTraza(trazaInfDtm, $"El codigo postal {cp} ya existe"); GestorDeCpsDeUnMunicipio.CrearRelacionConMunicipioSiNoExiste(entorno.contextoDelProceso, codigoPostalDtm, "ES", provincia, municipio); return(codigoPostalDtm); } operacion.Parametros[ltrCps.NombreProvincia] = provincia; operacion.Parametros[ltrCps.NombreMunicipio] = municipio; return(gestor.PersistirRegistro(codigoPostalDtm, operacion)); }
public static void ImportarCallejero(EntornoDeTrabajo entorno) { var archivos = JsonConvert.DeserializeObject <List <archivoParaImportar> >(entorno.TrabajoDeUsuario.Parametros); if (archivos.Count == 0) { GestorDeErrores.Emitir("No se ha sometido ningún fichero a cargar"); } foreach (archivoParaImportar archivo in archivos) { switch (archivo.parametro) { case ParametroPais: ImportarFicheroDePaises(entorno, archivo.valor); break; case GestorDeProvincias.ParametroProvincia: GestorDeProvincias.ImportarFicheroDeProvincias(entorno, archivo.valor); break; case GestorDeMunicipios.ParametroMunicipio: GestorDeMunicipios.ImportarFicheroDeMunicipios(entorno, archivo.valor); break; case GestorDeTiposDeVia.ParametroTipoDeVia: GestorDeTiposDeVia.ImportarFicheroDeTiposDeVia(entorno, archivo.valor); break; case GestorDeCodigosPostales.ltrCps.csvCp: GestorDeCodigosPostales.ImportarFicheroDeCodigosPostales(entorno, archivo.valor); break; default: GestorDeErrores.Emitir($"No es valido el parámetro {archivo.parametro} en el proceso {nameof(ImportarCallejero)}"); break; } } }
private static ProvinciaDtm ProcesarProvinciaLeida(EntornoDeTrabajo entorno, GestorDeProvincias gestor, string iso2Pais, string nombreProvincia, string sigla, string codigo, string prefijoTelefono, TrazaDeUnTrabajoDtm trazaInfDtm) { ParametrosDeNegocio operacion; var provinciaDtm = LeerProvinciaPorCodigo(gestor.Contexto, iso2Pais, codigo, paraActualizar: false, errorSiNoHay: false); if (provinciaDtm == null) { var pais = GestorDePaises.LeerPaisPorCodigo(gestor.Contexto, iso2Pais, errorSiNoHay: false); provinciaDtm = new ProvinciaDtm(); provinciaDtm.Codigo = codigo; provinciaDtm.Nombre = nombreProvincia; provinciaDtm.Sigla = sigla; provinciaDtm.IdPais = pais.Id; provinciaDtm.Prefijo = prefijoTelefono; operacion = new ParametrosDeNegocio(enumTipoOperacion.Insertar); entorno.ActualizarTraza(trazaInfDtm, $"Creando la provincia {nombreProvincia}"); } else { if (provinciaDtm.Nombre != nombreProvincia || provinciaDtm.Codigo != codigo || provinciaDtm.Sigla != sigla || provinciaDtm.Prefijo != prefijoTelefono) { provinciaDtm.Nombre = nombreProvincia; provinciaDtm.Sigla = sigla; provinciaDtm.Codigo = codigo; provinciaDtm.Prefijo = prefijoTelefono; operacion = new ParametrosDeNegocio(enumTipoOperacion.Modificar); entorno.ActualizarTraza(trazaInfDtm, $"Modificando la provincia {nombreProvincia}"); } else { entorno.ActualizarTraza(trazaInfDtm, $"La provincia {nombreProvincia} ya exite"); return(provinciaDtm); } } provinciaDtm.Pais = null; return(gestor.PersistirRegistro(provinciaDtm, operacion)); }
private static MunicipioDtm ProcesarMunicipioLeido(EntornoDeTrabajo entorno, GestorDeMunicipios gestorProceso, string iso2Pais, string codigoProvincia, string codigoMunicipio, string DC, string nombreMunicipio, TrazaDeUnTrabajoDtm trazaInfDtm) { ParametrosDeNegocio operacion; var municipioDtm = LeerMunicipioPorCodigo(gestorProceso.Contexto, iso2Pais, codigoProvincia, codigoMunicipio, paraActualizar: false, errorSiNoHay: false); if (municipioDtm == null) { var provinciaDtm = GestorDeProvincias.LeerProvinciaPorCodigo(gestorProceso.Contexto, iso2Pais, codigoProvincia, paraActualizar: false); municipioDtm = new MunicipioDtm(); municipioDtm.IdProvincia = provinciaDtm.Id; municipioDtm.Codigo = codigoMunicipio; municipioDtm.Nombre = nombreMunicipio; municipioDtm.DC = DC; operacion = new ParametrosDeNegocio(enumTipoOperacion.Insertar); entorno.ActualizarTraza(trazaInfDtm, $"Creando el municipio {nombreMunicipio}"); } else { if (municipioDtm.Nombre != nombreMunicipio || municipioDtm.Codigo != codigoMunicipio || municipioDtm.DC != DC) { municipioDtm.Nombre = nombreMunicipio; municipioDtm.DC = DC; municipioDtm.Codigo = codigoMunicipio; operacion = new ParametrosDeNegocio(enumTipoOperacion.Modificar); municipioDtm.UsuarioModificador = null; entorno.ActualizarTraza(trazaInfDtm, $"Modificando el municipio {nombreMunicipio}"); } else { entorno.ActualizarTraza(trazaInfDtm, $"el municipio {nombreMunicipio} ya exite"); return(municipioDtm); } } municipioDtm.Provincia = null; return(gestorProceso.PersistirRegistro(municipioDtm, operacion)); }
private static CalleDtm ProcesarCalleLeido(EntornoDeTrabajo entorno, GestorDeCalles gestorProceso, string iso2Pais, string codigoProvincia, string codigoMunicipio, string codigoCalle, string nombreCalle, string siglaTipoVia, TrazaDeUnTrabajoDtm trazaInfDtm) { ParametrosDeNegocio operacion; var calleDtm = LeerCallePorCodigo(gestorProceso.Contexto, iso2Pais, codigoProvincia, codigoMunicipio, codigoCalle, paraActualizar: false, errorSiNoHay: false); var tipoViaDtm = gestorProceso.Contexto.Set <TipoDeViaDtm>().LeerCacheadoPorPropiedad(nameof(TipoDeViaDtm.Sigla), siglaTipoVia); if (calleDtm == null) { var municipioDtm = GestorDeMunicipios.LeerMunicipioPorCodigo(gestorProceso.Contexto, iso2Pais, codigoProvincia, codigoMunicipio, paraActualizar: false); calleDtm = new CalleDtm(); calleDtm.IdMunicipio = municipioDtm.Id; calleDtm.Codigo = codigoCalle; calleDtm.Nombre = nombreCalle; calleDtm.IdTipoVia = tipoViaDtm.Id; operacion = new ParametrosDeNegocio(enumTipoOperacion.Insertar); entorno.ActualizarTraza(trazaInfDtm, $"Creando la calle {nombreCalle}"); } else { if (calleDtm.Nombre != nombreCalle || calleDtm.IdTipoVia != tipoViaDtm.Id) { calleDtm.Nombre = nombreCalle; calleDtm.IdTipoVia = tipoViaDtm.Id; operacion = new ParametrosDeNegocio(enumTipoOperacion.Modificar); calleDtm.UsuarioModificador = null; entorno.ActualizarTraza(trazaInfDtm, $"Modificando la calle {nombreCalle}"); } else { entorno.ActualizarTraza(trazaInfDtm, $"la calle {nombreCalle} ya exite"); return(calleDtm); } } calleDtm.Municipio = null; return(gestorProceso.PersistirRegistro(calleDtm, operacion)); }
private static PaisDtm ProcesarPaisLeido(EntornoDeTrabajo entorno, GestorDePaises gestor, string nombrePais, string nombreEnIngles, string Iso2, string codigoPais, string prefijoTelefono, TrazaDeUnTrabajoDtm trazaInfDtm) { ParametrosDeNegocio operacion; var pais = gestor.LeerRegistro(nameof(PaisDtm.Codigo), codigoPais, false, true, false, false, false); if (pais == null) { pais = new PaisDtm(); pais.Codigo = codigoPais; pais.Nombre = nombrePais; pais.NombreIngles = nombreEnIngles; pais.ISO2 = Iso2; pais.Prefijo = prefijoTelefono; operacion = new ParametrosDeNegocio(enumTipoOperacion.Insertar); entorno.ActualizarTraza(trazaInfDtm, $"Creando el pais {nombrePais}"); } else { if (pais.Nombre != nombrePais || pais.ISO2 != Iso2 || pais.NombreIngles != nombreEnIngles || pais.Prefijo != prefijoTelefono) { pais.Nombre = nombrePais; pais.NombreIngles = nombreEnIngles; pais.ISO2 = Iso2; pais.Prefijo = prefijoTelefono; operacion = new ParametrosDeNegocio(enumTipoOperacion.Modificar); entorno.ActualizarTraza(trazaInfDtm, $"Modificando el pais {nombrePais}"); } else { entorno.ActualizarTraza(trazaInfDtm, $"El pais {nombrePais} ya existe"); return(pais); } } return(gestor.PersistirRegistro(pais, operacion)); }
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"); }