Exemple #1
0
        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");
        }
Exemple #2
0
        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");
        }
Exemple #3
0
        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");
        }
Exemple #4
0
        //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));
        }