public MODResultado ProbarConeccion(MODOrigenDatos origen) { EnumBaseDatosOrigen dbtype = (EnumBaseDatosOrigen)origen.TipoOrigen; string coneccion = ""; SqlConnectionStringBuilder builder = null; Object parametros = null; switch (dbtype) { case EnumBaseDatosOrigen.Oracle: coneccion = Configuraciones.ObtenerConfiguracion("Conexiones", "ORA"); builder = new SqlConnectionStringBuilder(coneccion); builder.DataSource = string.Format("{0}{1}{2}", origen.Servidor, (string.IsNullOrEmpty(origen.Puerto) && origen.Puerto != "0" ? ":" + origen.Puerto.ToString() : ""), (!string.IsNullOrEmpty(origen.Sid) ? "/" + origen.Sid : "")); builder.UserID = origen.UsuarioBD; builder.Password = origen.ClaveBD; break; case EnumBaseDatosOrigen.SqlServer: coneccion = Configuraciones.ObtenerConfiguracion("Conexiones", EnumBaseDatos.SIR.ToString()); builder = new SqlConnectionStringBuilder(coneccion); builder.DataSource = string.Format("{0}{1}", origen.Servidor, (string.IsNullOrEmpty(origen.Puerto) && origen.Puerto != "0" ? ":" + origen.Puerto.ToString() : "")); builder.InitialCatalog = origen.Sid; builder.UserID = origen.UsuarioBD; builder.Password = origen.ClaveBD; break; } MODResultado resultado = new MODResultado(); try { IDbConnection con = this.ObtenerConexion(builder.ConnectionString, dbtype); if (!string.IsNullOrEmpty(origen.consulta)) { var consulta = (CommandType.Text == (CommandType)origen.tipoMando) ? origen.consulta.ToLower().Replace("where", "where rownum = 1 and") : origen.consulta; consulta = consulta.Replace("@periodo", "'" + DateTime.Now.ToString("yyyyMMdd") + "'"); var reader = con.ExecuteReader(consulta, parametros, commandType: (CommandType)origen.tipoMando); var schema = reader.GetSchemaTable(); reader.Close(); List <MODCampos> campos = new List <MODCampos>(); foreach (DataRow row in schema.Rows) { campos.Add(new MODCampos { Nombre = row["ColumnName"].ToString(), Largo = row["ColumnSize"].ToString(), Ordinal = Convert.ToInt32(row["ColumnOrdinal"]) }); } resultado.DatosAdicionales.Add("campos", JsonConvert.SerializeObject(campos)); } } catch (Exception exp) { resultado.Errores.Add(exp.Message); Log.WriteLog(exp, this.GetType().FullName + "-" + nameof(ProbarConeccion), String.Format(@"origen:{0}", System.Text.Json.JsonSerializer.Serialize(origen)), ErrorType.Error); } return(resultado); }
private DynamicParameters ObtenerParametros(MODOrigenDatos origen) { DynamicParameters parametros = new DynamicParameters(); try { if (origen.Parametros != null) { foreach (var a in origen.Parametros) { parametros.Add(a.Key, a.Value); } } else { parametros = null; } } catch (Exception e) { Log.WriteLog(e, "SIR.Datos.Concretos.ConfiguracionOrigenDatos - ObtenerParametros", String.Format(@"Origen:{0}", System.Text.Json.JsonSerializer.Serialize(origen)), ErrorType.Error); } return(parametros); }
public List <IDictionary <string, object> > Ejecutar(MODOrigenDatos origen, MODReporte reporte, ref MODResultado resultado) { List <IDictionary <string, object> > result = null; try { using (var coneccion = ObtenerConexion(origen.cadenaConexion, origen.TipoOrigen)) { origen.consulta = (origen.TipoOrigen == Comun.Enumeradores.EnumBaseDatosOrigen.Oracle)?origen.consulta.Replace("@periodo", ":periodo"):origen.consulta; var lector = coneccion.ExecuteReader(origen.consulta, ObtenerParametros(origen), commandType: origen.tipoMando); result = ConvertirADiccionario(ref lector, reporte.campos); coneccion.Close(); } } catch (Exception e) { Log.WriteLog(e, "SIR.Datos.Concretos.ConfiguracionOrigenDatos - Ejecutar", String.Format(@"Origen:{0} - reporte:{1}", System.Text.Json.JsonSerializer.Serialize(origen), System.Text.Json.JsonSerializer.Serialize(reporte)), ErrorType.Error); resultado.Errores.Add("COMUNES.ERRORSERVICIO"); } return(result); }
public IDictionary <string, object> CrearParametros(MODOrigenDatos configuracion, MODFlujo flujo) { Dictionary <string, object> resultado = new Dictionary <string, object>(); var _historico = new MODFlujoHistorico { Periodo = FijarPeriodoPorPeriodicidad(flujo.Periodo, flujo.Periodicidad, flujo.DatoPeriodo), Periodicidad = flujo.Periodicidad }; if (configuracion != null) { switch (flujo.Periodicidad) { case EnumPeriodicidad.diario: if (configuracion == null || configuracion.TipoOrigen == Comun.Enumeradores.EnumBaseDatosOrigen.SqlServer) { resultado.Add("periodo", _historico.StrPeriodo); } else { resultado.Add("periodo", _historico.StrPeriodoOracle); } break; case EnumPeriodicidad.mensual: case EnumPeriodicidad.trimestral: if (configuracion.TipoOrigen == Comun.Enumeradores.EnumBaseDatosOrigen.SqlServer && configuracion.Sid == "SIR2") { resultado.Add("periodo", _historico.StrPeriodo); } else { resultado.Add("periodo", _historico.StrPeriodoOracle); } break; case EnumPeriodicidad.semestral: break; case EnumPeriodicidad.anual: var fechaInicio = new DateTime(Convert.ToInt32(_historico.StrPeriodo), 1, 1, 0, 0, 0); var fechaFinal = new DateTime(Convert.ToInt32(_historico.StrPeriodo), 12, 31, 23, 59, 59); resultado.Add("fecha_ini", fechaInicio.ToString("yyyyMMdd HH:mm:ss")); resultado.Add("fecha_fin", fechaFinal.ToString("yyyyMMdd HH:mm:ss")); break; default: break; } } else { resultado.Add("periodo", _historico.StrPeriodo); } return(resultado); }
public void AgregarOrigen(MODOrigenDatos origen) { this.origenes.Add(origen); this.homologacion.Add(origen.id, new List <Homologacion>()); }
public MODResultado ProbarConeccion(MODOrigenDatos origen) { IFlujoTrabajoNegocio negocio = FabricaNegocio.CrearFlujoTrabajoNegocio; return(negocio.ProbarConeccion(origen)); }
public MODResultado ProbarConeccion(MODOrigenDatos origen) { var data = FabricaDatos.CrearFlujoTrabajoDatos; return(data.ProbarConeccion(origen)); }