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); }
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); }
public bool ActualizarArchivo(MODArchivo prmArchivo) { IArchivoDatos archivoDatos = FabricaDatos.CrearArchivoDatos; bool actualizar = archivoDatos.ActualizarArchivo(prmArchivo); if (actualizar) { this.InsertarCamposArchivo(prmArchivo.Campos); } return(actualizar); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
public override MODResultado Ejecutar(ref LinkedListNode <MODTarea> tarea, MODReporte reporte, MODArchivo archivo) { return(new MODResultado()); }
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(); }
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); }