//------------------------------------------------------------------------ //en este caso mandamos un objeto de tipo user que contiene los datos para la clase Encapsular public void insertar_descargar_archivo(E_descargar_archivo descargar) { DataTable usuarios = new DataTable(); //NpgsqlConnection conection = new NpgsqlConnection(ConfigurationManager.ConnectionStrings["MyConexion"].ConnectionString); SqlConnection conection = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConexion2"].ConnectionString); try { //conexion y mandamos los parametros //NpgsqlDataAdapter dataAdapter = new NpgsqlDataAdapter("sp_descargar_archivo", conection); SqlDataAdapter dataAdapter = new SqlDataAdapter("sp_descargar_archivo", conection); dataAdapter.SelectCommand.CommandType = CommandType.StoredProcedure; //dataAdapter.SelectCommand.Parameters.Add("_id", NpgsqlDbType.Integer).Value = descargar.IdUser; //dataAdapter.SelectCommand.Parameters.Add("_dinero", NpgsqlDbType.Integer).Value = descargar.Dinero; //dataAdapter.SelectCommand.Parameters.Add("_user_cambio", NpgsqlDbType.Integer).Value = descargar.UserCambio; dataAdapter.SelectCommand.Parameters.Add("@id", SqlDbType.Int).Value = descargar.IdUser; dataAdapter.SelectCommand.Parameters.Add("@dinero", SqlDbType.Int).Value = descargar.Dinero; dataAdapter.SelectCommand.Parameters.Add("@user_cambio", SqlDbType.Int).Value = descargar.UserCambio; conection.Open(); dataAdapter.Fill(usuarios); } catch (Exception Ex) { throw Ex; } finally { if (conection != null) { conection.Close(); } } //return usuarios; }
//----- descargar archivo ..... public U_Descargar_archivo descargar_archivo(string user, string id_archivo, string idrol) { U_Descargar_archivo datos = new U_Descargar_archivo(); //Dao_Descargar_archivo operacion = new Dao_Descargar_archivo(); //DataTable info_user = operacion.consultar_usuario(user); //DataTable info_file = operacion.ver_archivo(id_archivo); List <sp_consulta_usuario_Result> datos2 = operacion_n.sp_consulta_usuario(user).ToList <sp_consulta_usuario_Result>(); DataTable info_user = ToDataTable(datos2); List <sp_ver_archivo_Result> datos3 = operacion_n.sp_ver_archivo(Int32.Parse(id_archivo)).ToList <sp_ver_archivo_Result>(); DataTable info_file = ToDataTable(datos3); int saldo = int.Parse(info_user.Rows[0]["dinero_user"].ToString()); int precio = int.Parse(info_file.Rows[0]["precio_categoria"].ToString()); //asignamos session por si no pasa el if datos.Session_dinero = saldo; //preguntamos que el user tenga dinero en la cuenta if (saldo != 0) {//tiene dinero en la cuenta //preguntamos si tiene dinero suficiente para comprar el archivo if (saldo >= precio) {//permitir decarga //--------------encapsulamos campos.............................................. E_subir_descargar subir_descargar = new E_subir_descargar(); subir_descargar.IdUser = info_user.Rows[0]["id_usuario"].ToString(); subir_descargar.IdArchivo = info_file.Rows[0]["id_archivo"].ToString(); subir_descargar.Concepto = "Download"; subir_descargar.Precio = precio.ToString(); subir_descargar.UserCambio = idrol; E_descargar_archivo descargar = new E_descargar_archivo(); descargar.IdUser = info_user.Rows[0]["id_usuario"].ToString(); descargar.Dinero = precio.ToString(); descargar.UserCambio = idrol; //--------------descargar_archivo.............................................. try { //operacion.insertar_descargar_archivo(descargar); //operacion.insertar_subir_descargar(subir_descargar); operacion_n.sp_descargar_archivo(Int32.Parse(descargar.IdUser), Int32.Parse(descargar.Dinero), Int32.Parse(descargar.UserCambio)); operacion_n.sp_insertar_subir_descargar(Int32.Parse(subir_descargar.IdUser), Int32.Parse(subir_descargar.IdArchivo), subir_descargar.Concepto, Int32.Parse(subir_descargar.Precio), Int32.Parse(subir_descargar.UserCambio)); //cambiamos el valor de la session datos.Session_dinero = saldo - precio; string ruta = info_file.Rows[0]["url"].ToString(); datos.Url_pag = ruta; datos.Descargar = true; return(datos); } catch (Exception exc) { throw exc; } } else {//no alcanza el dinero datos.Descargar = false; datos.Mensajes = "<script type='text/javascript'>alert('Dinero insuficiente para descargar el archivo, para obtener dinero participe subiendo archivos');</script>"; return(datos); } } else {//el user se quedo sin dinero datos.Descargar = false; datos.Mensajes = "<script type='text/javascript'>alert('No tiene dinero en su cuenta, para obtener dinero participe subiendo archivos');</script>"; return(datos); } }