public MainWindow() { InitializeComponent(); String cadenaConexion = @"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.81)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=xe)));User Id=ERPZMX_REF;Password=ERPZMX_REF;"; ManejadorInstanciasBD.ZMX_Usuario = "*****@*****.**"; ManejadorInstanciasBD.ZMX_SetClienteConexion(ClienteConfig.ClientesBD.Oracle, new OracleMapeoInsert(), new OracleMapeoSelect(), new OracleMapeoUpdate(), cadenaConexion); }
public T Carga <T>(Expression <Func <T> > expr, ManejadorInstanciasBD mibd, Dictionary <String, Object> parametros = null) where T : CLASE_BASE { var mexpr = expr.Body as MemberExpression; if (mexpr == null) { return(default(T)); } if (mexpr.Member == null) { return(default(T)); } object[] attrs = mexpr.Member.GetCustomAttributes(typeof(ANP_QueryPropiedad), true); if (attrs == null || attrs.Length == 0) { return(default(T)); } ANP_QueryPropiedad desc = attrs[0] as ANP_QueryPropiedad; if (desc == null) { return(default(T)); } object retorno = Activator.CreateInstance(typeof(T)); //aqui obtengo los parametros para la consulta List <String> parametrosString = Estructura.ObtenerListaParametros(desc.Query); //y con reflection llenar las variables Dictionary <String, Object> parametrosInternos = new Dictionary <string, object>(); //se pasan los parametros si los hay a los parametros internos if (parametros != null) { parametros.Keys.ToList().ForEach(x => parametrosInternos.Add(x, parametros[x])); } //si encontramos el parametro en la clase, lo mandamos en el query, en caso contrario, se omite foreach (String parametro in parametrosString) { PropertyInfo piValorParametro = this.GetType().GetProperty(parametro, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public); if (piValorParametro != null) { //el parametro fue encontrado como propiedad de la clase object valor = piValorParametro.GetValue(this); parametrosInternos.Add(parametro, valor); } } retorno = mibd.ZMX_ConsultarUnico <T>(desc.Query, parametrosInternos); //obteniendo la propiedad a afectar con el resultado PropertyInfo pi = this.GetType().GetProperty(mexpr.Member.Name, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public); pi.SetValue(this, retorno); return((T)retorno); }
public override void OnActionExecuting(HttpActionContext actionContext) { try { PeticionAPI peticion = Seguridad.ValidarPeticion <PeticionAPI>(actionContext.ActionArguments["value"].ToString()); String csmodel_ado = WebConfigurationManager.AppSettings["csmodel_ado"]; String csmodel_ambiente_ado = WebConfigurationManager.AppSettings["csmodel_ambiente_ado"]; if (csmodel_ado == null) { throw new Exception("No está definido 'csmodel_ado' en web.config"); } if (csmodel_ambiente_ado == null) { throw new Exception("No está definido 'csmodel_ambiente_ado' en web.config"); } if (csmodel_ambiente_ado.ToLower().Equals("debug")) { ManejadorInstanciasBD.ZMX_AmbienteAPI = ManejadorInstanciasBD.Ambiente.Desarrollo; } else if (csmodel_ambiente_ado.ToLower().Equals("desarrollo")) { ManejadorInstanciasBD.ZMX_AmbienteAPI = ManejadorInstanciasBD.Ambiente.Desarrollo; } else if (csmodel_ambiente_ado.ToLower().Equals("pruebas")) { ManejadorInstanciasBD.ZMX_AmbienteAPI = ManejadorInstanciasBD.Ambiente.Desarrollo; } else if (csmodel_ambiente_ado.ToLower().Equals("preproduccion")) { ManejadorInstanciasBD.ZMX_AmbienteAPI = ManejadorInstanciasBD.Ambiente.Desarrollo; } else if (csmodel_ambiente_ado.ToLower().Equals("produccion")) { ManejadorInstanciasBD.ZMX_AmbienteAPI = ManejadorInstanciasBD.Ambiente.Desarrollo; } else { ManejadorInstanciasBD.ZMX_AmbienteAPI = ManejadorInstanciasBD.Ambiente.NoDefinido; } ManejadorInstanciasBD.ZMX_Ambiente = peticion.Sesion.Ambiente; ManejadorInstanciasBD.ZMX_Usuario = peticion.Sesion.Usuario; ManejadorInstanciasBD.ZMX_SetClienteConexion(ACCESO_DATOS.Conexiones.ClienteConfig.ClientesBD.Oracle, new OracleMapeoInsert(), new OracleMapeoSelect(), new OracleMapeoUpdate(), SeguridadCAF.DesencriptarAES(csmodel_ado, "!234#3a@%%_=?'")); } catch (Exception ex) { throw new Exception("No se pudo realizar la conexión.", ex); } }