public MODRespuestaAPI <bool> ActualizarArchivo(MODArchivo prmArchivo)
        {
            MODRespuestaAPI <bool> respuesta = null;
            string codigoMensaje             = "COMUNES.ERRORSERVICIO";

            try
            {
                if (prmArchivo != null)
                {
                    bool            isUpdated;
                    IArchivoNegocio usuarioNegocio = FabricaNegocio.CrearArchivoNegocio;
                    isUpdated = usuarioNegocio.ActualizarArchivo(prmArchivo);
                    respuesta = new MODRespuestaAPI <bool>(isUpdated);
                }
                else
                {
                    respuesta = new MODRespuestaAPI <bool>(HttpStatusCode.BadRequest, "ARCHIVO.RESPUESTAS.RTA004");
                }
            }
            catch (Exception ex)
            {
                Log.WriteLog(ex, "ArchivoController.ActualizarArchivo", JsonSerializer.Serialize(prmArchivo), ErrorType.Error);
                respuesta = new MODRespuestaAPI <bool>(HttpStatusCode.InternalServerError, codigoMensaje);
            }
            finally
            {
                //Auditoria.
            }
            return(respuesta);
        }
Beispiel #2
0
        public bool CrearArchivo(MODArchivo prmArchivo, List <IDictionary <string, object> > prmDatos, ref string rutaDestino)
        {
            var rutaBase = Configuraciones.ObtenerConfiguracion("FileRoutes", "Url:RutaBaseArchivosSalida");

            rutaBase += $"{DateTime.Now.Year}\\\\{DateTime.Now.Month}\\\\{DateTime.Now.Day}";

            if (!Directory.Exists(rutaBase))
            {
                Directory.CreateDirectory(rutaBase);
            }

            var rutaFinal = rutaBase + $"\\\\{prmArchivo.Nombre}_{prmArchivo.Periodo.ToString("yyyyMM")}_{DateTime.Now.ToString("ddMMyyyyHHmmss")}.{prmArchivo.Extension}";

            using (FileStream fs = File.Create(rutaFinal))
            {
                using (var sr = new StreamWriter(fs))
                {
                    string firstLine = String.Join(prmArchivo.ValorSeparador, prmArchivo.Campos.Select(x => x.Nombre.ToUpper()).ToArray());
                    sr.WriteLine(firstLine);

                    foreach (var item in prmDatos)
                    {
                        string line = String.Join(prmArchivo.ValorSeparador, item.Values.Select(x => x.ToString().Replace(",", ".")));
                        sr.WriteLine(line);
                    }
                }
            }

            rutaDestino = rutaFinal;

            return(true);
        }
Beispiel #3
0
        public bool ActualizarArchivo(MODArchivo prmArchivo)
        {
            IArchivoDatos archivoDatos = FabricaDatos.CrearArchivoDatos;

            bool actualizar = archivoDatos.ActualizarArchivo(prmArchivo);

            if (actualizar)
            {
                this.InsertarCamposArchivo(prmArchivo.Campos);
            }

            return(actualizar);
        }
Beispiel #4
0
        public long CrearArchivo(MODArchivo prmArchivo)
        {
            IArchivoDatos archivoDatos = FabricaDatos.CrearArchivoDatos;

            long idArchivo = archivoDatos.CrearArchivo(prmArchivo);

            if (idArchivo > 0)
            {
                prmArchivo.Campos.ForEach(x =>
                {
                    x.IdArchivo = (int)idArchivo;
                });

                this.InsertarCamposArchivo(prmArchivo.Campos);
            }


            return(idArchivo);
        }
Beispiel #5
0
        public bool GenerarArchivo(MODArchivo prmArchivo, ref List <string> mensajesError)
        {
            IArchivoDatos archivoDatos = FabricaDatos.CrearArchivoDatos;

            bool resultado = false;

            if (prmArchivo != null)
            {
                var    campos = prmArchivo.Campos;
                string sql    = this.ConstruirConsultaArchivo(campos, prmArchivo.IdArchivo, prmArchivo.IdReporte, prmArchivo.Periodo, prmArchivo.Periodicidad, (int)prmArchivo.IdFlujo, prmArchivo.DatoPeriodo, prmArchivo.IdElementoFlujo);

                var datos = archivoDatos.ObtenerInformacionArchivo(sql, campos.Select(x => new Comun.Entidades.MODCampos()
                {
                    Id = x.IdCampo, Nombre = x.Nombre
                }).ToList());
                string rutaDestino = String.Empty;

                if (this.CrearArchivo(prmArchivo, datos, ref rutaDestino))
                {
                    this.CrearLogGeneracionArchivo(new MODLogGeneracionArchivo()
                    {
                        IdArchivo       = prmArchivo.IdArchivo,
                        FechaGeneracion = DateTime.Now,
                        RutaDestino     = rutaDestino,
                        IdFlujo         = prmArchivo.IdFlujo
                    });

                    resultado = true;
                }
                else
                {
                    resultado = false;
                    mensajesError.Add($"Ha ocurrido un error al intentar crear el archivo");
                }
            }
            else
            {
                mensajesError.Add($"El archivo con id {prmArchivo.IdArchivo} no se encuentra en nuestros registros.");
                resultado = false;
            }

            return(resultado);
        }
        public override MODResultado Ejecutar(ref LinkedListNode <MODTarea> tarea, MODReporte reporte, MODArchivo archivo)
        {
            IArchivoNegocio archivoNegocio = FabricaNegocio.CrearArchivoNegocio;

            MODResultado resultado = new MODResultado();
            var          errores   = new List <string>();

            archivo.Periodo         = tarea.Value.Periodo;
            archivo.IdFlujo         = tarea.Value.IdFlujo;
            archivo.IdElementoFlujo = tarea.Value.IdElemento;
            archivo.Periodicidad    = _flujo.Periodicidad;
            archivo.DatoPeriodo     = _flujo.DatoPeriodo;

            var    lista       = tarea.Value.Registros;
            string rutaDestino = "";

            if ((tarea.Value.Registros != null && tarea.Value.Registros.Count > 0) || tarea.Previous.Value.Proceso == Comun.Enumeradores.FlujoDeTrabajo.EnumProceso.Ejecutar)
            {
                if (archivoNegocio.CrearArchivo(archivo, lista, ref rutaDestino))
                {
                    archivoNegocio.CrearLogGeneracionArchivo(new MODLogGeneracionArchivo()
                    {
                        IdArchivo       = archivo.IdArchivo,
                        FechaGeneracion = DateTime.Now,
                        RutaDestino     = rutaDestino,
                        IdFlujo         = archivo.IdFlujo
                    });
                }
                else
                {
                    //resultado = false;
                    //mensajesError.Add($"Ha ocurrido un error al intentar crear el archivo");
                    resultado.Errores.Add("Ha ocurrido un error al intentar crear el archivo");
                }
            }
            else
            {
                archivoNegocio.GenerarArchivo(archivo, ref errores);
                resultado.Errores = errores;
            }
            AisgnarRegistros(ref tarea);
            return(resultado);
        }
Beispiel #7
0
        public override MODResultado Ejecutar(ref LinkedListNode <MODTarea> tarea, MODReporte reporte, MODArchivo archivo)
        {
            MODResultado resultado      = new MODResultado();
            var          _configuraicon = FabricaDatos.CrearConfiguracionOrigenDatos;
            var          _flujoTrabajo  = FabricaDatos.CrearFlujoTrabajoDatos;

            tarea.Value.ConfiguracionBD.Parametros = new Dictionary <string, object>();
            var _historico = new MODFlujoHistorico {
                Periodo = FijarPeriodoPorPeriodicidad(_flujo.Periodo, _flujo.Periodicidad, _flujo.DatoPeriodo), Periodicidad = tarea.Value.Periodicidad
            };

            if (tarea.Value.ConfiguracionBD.TipoOrigen == Comun.Enumeradores.EnumBaseDatosOrigen.SqlServer && tarea.Value.ConfiguracionBD.Sid == "SIR2")
            {
                tarea.Value.ConfiguracionBD.Parametros.Add("periodo", _historico.StrPeriodo);
            }
            else
            {
                tarea.Value.ConfiguracionBD.Parametros.Add("periodo", _historico.StrPeriodoOracle);
            }

            tarea.Next.Value.Registros = _configuraicon.Ejecutar(tarea.Value.ConfiguracionBD, reporte, ref resultado);

            if (tarea.Next.Value.Registros != null)
            {
                resultado = this.Registrar(tarea.Next, tarea.Value.Reporte);
            }
            if (!String.IsNullOrEmpty(tarea.Value.ConsultaFinal))
            {
                _flujoTrabajo.EjecutarScirpt(null, tarea.Value.ConsultaFinal, null);
            }

            return(resultado);
        }
        public override MODResultado Ejecutar(ref LinkedListNode <MODTarea> tarea, MODReporte reporte, MODArchivo archivo)
        {
            MODResultado resultado      = new MODResultado();
            var          _configuraicon = FabricaDatos.CrearConfiguracionOrigenDatos;

            reporte.campos        = AdicionarCamposControl(reporte.campos);
            tarea.Value.Registros = RegistrarCamposControl(tarea.Value.Registros, _flujo, tarea.Value.Id);

            resultado = _configuraicon.ProcesarEstracion(tarea.Value.NombreTablaSIR, tarea.Value.Registros, reporte.campos);
            AisgnarRegistros(ref tarea);
            return(resultado);
        }
Beispiel #9
0
        public override MODResultado Ejecutar(ref LinkedListNode <MODTarea> tarea, MODReporte reporte, MODArchivo archivo)
        {
            MODResultado resultado      = new MODResultado();
            var          _configuraicon = FabricaDatos.CrearConfiguracionOrigenDatos;
            var          _flujoTrabajo  = FabricaDatos.CrearFlujoTrabajoDatos;

            tarea.Value.ConfiguracionBD.Parametros = new Dictionary <string, object>();

            tarea.Value.ConfiguracionBD.Parametros = CrearParametros(tarea.Value.ConfiguracionBD, _flujo);
            tarea.Next.Value.Registros             = _configuraicon.Ejecutar(tarea.Value.ConfiguracionBD, reporte, ref resultado);

            if (tarea.Next.Value.Registros != null)
            {
                resultado = this.Registrar(tarea.Next, tarea.Value.Reporte);
            }
            if (!String.IsNullOrEmpty(tarea.Value.ConsultaFinal))
            {
                _flujoTrabajo.EjecutarScirpt(null, tarea.Value.ConsultaFinal, null);
            }

            return(resultado);
        }
Beispiel #10
0
        public override MODResultado Ejecutar(ref LinkedListNode <MODTarea> tarea, MODReporte reporte, MODArchivo archivo)
        {
            MODResultado resultado = new MODResultado();
            var          data      = FabricaDatos.CrearFlujoTrabajoDatos;
            Dictionary <string, object> parametros = new Dictionary <string, object>();
            var _historico = new MODFlujoHistorico {
                Periodo = FijarPeriodoPorPeriodicidad(_flujo.Periodo, _flujo.Periodicidad, _flujo.DatoPeriodo), Periodicidad = _flujo.Periodicidad
            };

            parametros.Add("@periodo", _historico.StrPeriodo);
            tarea.Next.Value.Registros = data.EjecutarScirpt(tarea.Value.Reporte.campos, tarea.Value.ConsultaFinal, parametros);
            return(resultado);
        }
Beispiel #11
0
        public override MODResultado Ejecutar(ref LinkedListNode <MODTarea> tarea, MODReporte reporte, MODArchivo archivo)
        {
            MODResultado resultado      = new MODResultado();
            var          _configuraicon = FabricaDatos.CrearConfiguracionOrigenDatos;
            var          _flujoTrabajo  = FabricaDatos.CrearFlujoTrabajoDatos;
            List <IDictionary <string, object> > error = null;

            if (tarea.Value.ConfiguracionBD != null)
            {
                tarea.Value.ConfiguracionBD.Parametros = CrearParametros(tarea.Value.ConfiguracionBD, _flujo);
                error = _configuraicon.Ejecutar(tarea.Value.ConfiguracionBD, reporte, ref resultado);
            }
            else if (!String.IsNullOrEmpty(tarea.Value.ConsultaFinal))
            {
                error = _flujoTrabajo.EjecutarScirpt(null, tarea.Value.ConsultaFinal, null);
            }
            if (error != null)
            {
                foreach (var e in error)
                {
                    resultado.Errores.Add(e["error"].ToString());
                }
            }
            return(resultado);
        }
        public override MODResultado Ejecutar(ref LinkedListNode <MODTarea> tarea, MODReporte reporte, MODArchivo archivo)
        {
            MODResultado resultado      = new MODResultado();
            var          _configuraicon = FabricaDatos.CrearConfiguracionOrigenDatos;
            var          _flujoTrabajo  = FabricaDatos.CrearFlujoTrabajoDatos;

            if (tarea.Value.Reporte != null && tarea.Value.ConfiguracionBD != null)
            {
                tarea.Value.ConfiguracionBD.Parametros = CrearParametros(tarea.Value.ConfiguracionBD, _flujo);

                tarea.Value.NombreTablaSIR = $"Temp_Combinacion_{tarea.Value.Reporte.Nombre.Replace(" ", "_")}";
                tarea.Next.Value.Registros = _configuraicon.Ejecutar(tarea.Value.ConfiguracionBD, reporte, ref resultado);

                _flujoTrabajo.GenerarTablaTemporal(tarea.Value);
                resultado = this.Registrar(tarea.Next, tarea.Value.Reporte);
            }

            if (!String.IsNullOrEmpty(tarea.Value.ConsultaFinal))
            {
                if (tarea.Value.ConfiguracionBD != null)
                {
                    tarea.Next.Value.Registros = _flujoTrabajo.EjecutarScirpt(reporte.campos, tarea.Value.ConsultaFinal, (Dictionary <string, object>)CrearParametros(tarea.Value.ConfiguracionBD, _flujo));
                }
                else
                {
                    var parametros = new Dictionary <string, object>();
                    var campos     = new List <MODCampos>();

                    if (tarea.Value.ConsultaFinal.Contains("@periodo"))
                    {
                        parametros.Add("periodo", tarea.Value.Periodo);
                    }

                    if (reporte != null)
                    {
                        campos = reporte.campos;
                    }

                    tarea.Next.Value.Registros = _flujoTrabajo.EjecutarScirpt(campos, tarea.Value.ConsultaFinal, parametros);
                }
            }

            if (tarea.Value.Reporte != null && tarea.Value.ConfiguracionBD != null)
            {
                _flujoTrabajo.EjecutarScirpt(null, $"DROP TABLE {tarea.Value.NombreTablaSIR}", null);
            }

            return(resultado);
        }
Beispiel #13
0
        public override MODResultado Ejecutar(ref LinkedListNode <MODTarea> tarea, MODReporte reporte, MODArchivo archivo)
        {
            MODResultado resultado = new MODResultado();
            var          data      = FabricaDatos.CrearFlujoTrabajoDatos;
            Dictionary <string, object> parametros = (Dictionary <string, object>)CrearParametros(tarea.Value.ConfiguracionBD, _flujo);

            tarea.Next.Value.Registros = data.EjecutarScirpt(tarea.Value.Reporte.campos, tarea.Value.ConsultaFinal, parametros);
            return(resultado);
        }
        public override MODResultado Ejecutar(ref LinkedListNode <MODTarea> tarea, MODReporte reporte, MODArchivo archivo)
        {
            MODResultado resultado      = new MODResultado();
            var          _configuraicon = FabricaDatos.CrearConfiguracionOrigenDatos;

            if (!reporte.campos.Any(y => y.Nombre == "VERSION_SIR" || y.Nombre == "IDFLUJO_SIR"))
            {
                reporte.campos.Add(new Comun.Entidades.MODCampos {
                    Nombre = "VERSION_SIR", Tipo = Comun.Enumeradores.EnumTipoDato._int
                });
                reporte.campos.Add(new Comun.Entidades.MODCampos {
                    Nombre = "IDFLUJO_SIR", Tipo = Comun.Enumeradores.EnumTipoDato._int
                });
                reporte.campos.Add(new Comun.Entidades.MODCampos {
                    Nombre = "IDCAUSA_SIR", Tipo = Comun.Enumeradores.EnumTipoDato._int
                });
                reporte.campos.Add(new Comun.Entidades.MODCampos {
                    Nombre = "DESCRIPCION_SIR", Tipo = Comun.Enumeradores.EnumTipoDato._string
                });
                reporte.campos.Add(new Comun.Entidades.MODCampos {
                    Nombre = "PERIODO_SIR", Tipo = Comun.Enumeradores.EnumTipoDato._string
                });
            }

            var _flujohistorico = FabricaDatos.CrearFlujoTrabajoDatos;

            var _historico = new MODFlujoHistorico
            {
                IdEmpresa          = _flujo.IdEmpresa,
                IdServicio         = _flujo.IdServicio,
                IdElemento         = _flujo.IdElemento,
                TipoFlujo          = _flujo.Tipo,
                IdTarea            = tarea.Value.Id,
                FlujoFechaCreacion = DateTime.Now,
                TareaFechaCreacion = DateTime.Now,
                IdFlujo            = _flujo.Id,
                Periodicidad       = _flujo.Periodicidad,
                Periodo            = _flujo.Periodo
            };
            var _conteo = _flujohistorico.Historico(ref _historico, Comun.Enumeradores.EnumAccionBaseDatos.Consulta_1);


            foreach (var x in tarea.Value.Registros)
            {
                if (!x.ContainsKey("IDFLUJO_SIR"))
                {
                    x.Add("IDFLUJO_SIR", _flujo.Id);
                }
                if (!x.ContainsKey("VERSION_SIR"))
                {
                    x.Add("VERSION_SIR", _conteo.DatosAdicionales["Version"]);
                }
                if (!x.ContainsKey("IDCAUSA_SIR"))
                {
                    x.Add("IDCAUSA_SIR", 0);
                }
                if (!x.ContainsKey("DESCRIPCION_SIR"))
                {
                    x.Add("DESCRIPCION_SIR", "");
                }
                if (!x.ContainsKey("PERIODO_SIR"))
                {
                    x.Add("PERIODO_SIR", _historico.StrPeriodo);
                }
            }
            ;

            resultado = _configuraicon.ProcesarEstracion(tarea.Value.NombreTablaSIR, tarea.Value.Registros, reporte.campos);
            AisgnarRegistros(ref tarea);
            return(resultado);
        }
Beispiel #15
0
 public override MODResultado Ejecutar(ref LinkedListNode <MODTarea> tarea, MODReporte reporte, MODArchivo archivo)
 {
     return(new MODResultado());
 }
Beispiel #16
0
 public abstract MODResultado Ejecutar(ref LinkedListNode <MODTarea> tarea, MODReporte reporte, MODArchivo archivo);
 public override MODResultado Ejecutar(ref LinkedListNode <MODTarea> tarea, MODReporte reporte, MODArchivo archivo)
 {
     throw new NotImplementedException();
 }
Beispiel #18
0
        public override MODResultado Ejecutar(ref LinkedListNode <MODTarea> tarea, MODReporte reporte, MODArchivo archivo)
        {
            MODResultado resultado = new MODResultado();

            try
            {
                ExprParser       ep                 = new ExprParser();
                LambdaExpression lambda             = null;
                List <string>    parametros_valores = null;

                foreach (var registro in tarea.Value.Registros)
                {
                    foreach (var _homolg in tarea.Value.Homologaciones)
                    {
                        if (_homolg.TipoReemplazo == Comun.Enumeradores.FlujoDeTrabajo.EnumTipoReemplazo.Constante)
                        {
                            registro[_homolg.NombreCampo] = ConvertirObjeto(_homolg.TipoCampo, _homolg.ValorSi);
                        }
                        else if (_homolg.TipoReemplazo == Comun.Enumeradores.FlujoDeTrabajo.EnumTipoReemplazo.Variable)
                        {
                            parametros_valores = new List <string>();
                            foreach (string _nombreCampo in _homolg.Condiciones.Select(y => y.Campo).Distinct())
                            {
                                parametros_valores.Add(registro[_nombreCampo].ToString());
                            }

                            lambda = ep.Parse(_homolg.Ecuacion);
                            if ((bool)ep.Run(lambda, parametros_valores.ToArray()))
                            {
                                registro[_homolg.NombreCampo] = ConvertirObjeto(_homolg.TipoCampo, _homolg.ValorSi);
                            }
                            else
                            {
                                string _posiblevalor = _homolg.ValorNo.Equals("@valorOriginal") ? registro[_homolg.NombreCampo].ToString() : _homolg.ValorNo;
                                registro[_homolg.NombreCampo] = ConvertirObjeto(_homolg.TipoCampo, _posiblevalor);
                            }
                        }
                    }
                }
                AisgnarRegistros(ref tarea);
            }
            catch (Exception e)
            {
                Log.WriteLog(e, "SIR.Negocio.Concretos.FlujoDeTrabajo.HomologarNegocio - Ejecutar",
                             String.Format(@"tarea:{0} - reporte:{1}", System.Text.Json.JsonSerializer.Serialize(tarea),
                                           System.Text.Json.JsonSerializer.Serialize(reporte)),
                             ErrorType.Error);
                resultado.Errores.Add("COMUNES.ERRORSERVICIO");
            }
            return(resultado);
        }