/* * AL cargar la pagina de inicio, se mostraran todos los archivos de la base de datos que sean publicos */ protected void Page_Load(object sender, EventArgs e) { File_EN fi = new File_EN(); GridViewMostrarTodo.DataSource = fi.MostrarAllFiles(); GridViewMostrarTodo.DataBind(); }
/** * Se encarga de subir el archivo y meterlo en la base de datos **/ public int SubirFile(File_EN f) { SqlConnection nueva_conexion = new SqlConnection(Constants.nombreConexion); int id = 0; try { nueva_conexion.Open(); f.Fecha_creacion = DateTime.Now; string ahora = f.Fecha_creacion.ToString("yyyy/MM/dd HH:mm:ss"); string insert = ""; insert = "Insert Into Files(name,description,creation_date,owner) VALUES ('"; insert += f.Nombre + "','" + f.Descripcion + "','" + ahora + "','" + f.Propietario + "')"; SqlCommand com = new SqlCommand(insert, nueva_conexion); com.ExecuteNonQuery(); string select = "select ID from Files where name='" + f.Nombre + "' and owner='" + f.Propietario + "' order by ID desc"; com = new SqlCommand(select, nueva_conexion); SqlDataReader dr = com.ExecuteReader(); if (dr.Read()) { id = dr.GetInt32(0); f.ID = id; newVersion(f); } } catch (Exception ex) { } finally { nueva_conexion.Close(); } return(id); }
/** * Se encarga de mostrar los likes que tiene asociada cada archivo **/ public ArrayList showLikes(File_EN f) { SqlConnection c = new SqlConnection(Constants.nombreConexion); try { c.Open(); string select = "select nombre,name, count(*) as lik from Likes,Files,Users where " + "Users.ID=Files.owner and Files.ID=Likes.files group by Files.name, Files.ID, nombre order by lik desc;"; SqlCommand com = new SqlCommand(select, c); SqlDataReader dr = com.ExecuteReader(); int cont = 0; while (cont++ < 10 && dr.Read()) { File_EN archivo = new File_EN(); archivo.ID = Convert.ToInt16(dr["Lik"]); archivo.Nombre = dr["name"].ToString(); archivo.Descripcion = dr["nombre"].ToString(); lista.Add(archivo); } dr.Close(); } catch (Exception ex) { } finally { c.Close(); } return(lista); }
/** * Se encarga de buscar en la base de datos,a través del id del archivo,si se encuentra o no en la base de datos **/ public bool BuscarFile(File_EN f) { bool encontrado = false; SqlConnection nueva_conexion = new SqlConnection(Constants.nombreConexion); try { nueva_conexion.Open(); string select = ""; select = "Select id from Files where Files.ID =" + f.ID; SqlCommand com = new SqlCommand(select, nueva_conexion); SqlDataReader dr = com.ExecuteReader(); if (dr.HasRows) { encontrado = true; } dr.Close(); } catch (Exception ex) { } finally { nueva_conexion.Close(); } return(encontrado); }
/** * Se encarga de mostrar las versiones que tiene un archivo **/ public int newVersion(File_EN fe) { int Version = 1; int ID_Principal; SqlConnection c = new SqlConnection(Constants.nombreConexion); try { c.Open(); string select = "Select ID,num_version from Files,Versions where name = '" + fe.Nombre + "' and files1=ID order by num_version desc"; SqlCommand com = new SqlCommand(select, c); //se ordena del reves SqlDataReader dr = com.ExecuteReader(); if (dr.Read()) // solamente queremos el primero para saber la ultima version subida { Version += Convert.ToInt16(dr["num_version"]); ID_Principal = Convert.ToInt16(dr["ID"]); } else { ID_Principal = fe.ID; //version se mantiene a 1 y file1=file2=ID_Principal en la primera version } dr.Close(); string insert = ""; insert = "Insert Into Versions(files1,files2,num_version) VALUES ('"; insert += ID_Principal + "','" + fe.ID + "','" + Version + "')"; com = new SqlCommand(insert, c); com.ExecuteNonQuery(); } catch (Exception ex) { } finally { c.Close(); } return(Version); }
/** * Se encarga de mostrar los datos de un archivo al que le pasamos el id de ese archivo **/ public ArrayList MostrarFile(File_EN f) { SqlConnection c = new SqlConnection(Constants.nombreConexion); c.Open(); SqlCommand com = new SqlCommand("Select * from Files where ID=" + f.ID, c); SqlDataReader dr = com.ExecuteReader(); if (dr.Read()) { File_EN archivo = new File_EN(); archivo.ID = dr.GetInt32(0); archivo.Nombre = (dr["name"].ToString()); archivo.Descripcion = (dr["description"].ToString()); archivo.Fecha_creacion = Convert.ToDateTime(dr["creation_date"]); archivo.Propietario = Convert.ToByte(dr["owner"]); lista.Add(archivo); } dr.Close(); c.Close(); return(lista); }
/** * Se encarga de mostrar todos los archivos de un usuario **/ public ArrayList MostrarFilesUsuarioNombre(int propietario) { SqlConnection c = new SqlConnection(Constants.nombreConexion); try { c.Open(); string select = "Select * from Files,Versions where owner = " + propietario + " and Files.ID=Versions.Files1 order by ID,num_version"; SqlCommand com = new SqlCommand(select, c); SqlDataReader dr = com.ExecuteReader(); while (dr.Read()) { File_EN archivo = new File_EN(); archivo.Version = Convert.ToInt16(dr["num_version"]); archivo.ID = Convert.ToInt16(dr["ID"]); archivo.Nombre = dr["name"].ToString(); archivo.Descripcion = dr["description"].ToString(); archivo.Fecha_creacion = Convert.ToDateTime(dr["creation_date"]); archivo.Propietario = Convert.ToByte(dr["owner"]); lista.Add(archivo); } dr.Close(); } catch (Exception ex) { } finally { c.Close(); } return(lista); }
/** * Se encarga de mostrar los datos de un archivo a traves del id del owner **/ public ArrayList MostrarDatosArchivo(File_EN f) { SqlConnection c = new SqlConnection(Constants.nombreConexion); try { c.Open(); string select = "Select * from Files where Files.owner=" + f.Propietario; SqlCommand com = new SqlCommand(select, c); SqlDataReader dr = com.ExecuteReader(); while (dr.Read()) { File_EN archivo = new File_EN(); archivo.Nombre = dr["name"].ToString(); archivo.Descripcion = dr["description"].ToString(); archivo.Fecha_creacion = Convert.ToDateTime(dr["creation_date"]); archivo.Propietario = Convert.ToByte(dr["owner"]); lista.Add(archivo); } dr.Close(); } catch (Exception ex) { } finally { c.Close(); } return(lista); }
protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString.HasKeys() && Request.QueryString.Keys[0] == "query") { File_EN fi = new File_EN(); GridViewBusqueda.DataSource = fi.BuscarFiles(Request.QueryString["query"].ToString()); GridViewBusqueda.DataBind(); } else { Response.Redirect("~/Inicio.aspx"); } }
protected void Button_Buscra_Click(object sender, EventArgs e) { User_EN usuarioABuscar = new User_EN(); User_EN usuario = usuarioABuscar.BuscarUsuario(usuario_buscar.Text); if (usuario != null) { File_EN fi = new File_EN(); fi.Propietario = usuario.ID;//Para identificar al usuario //EL griedView, mostrara un tabla con todos los datos que nos devuelva MostrarFilesUsuarioNombreEn GridViewMostrarArchivosUsuario.DataSource = fi.MostrarFilesUsuarioNombreEn(); GridViewMostrarArchivosUsuario.DataBind(); } }
protected void GridViewBusqueda_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { HyperLink Texto_Descarga = (HyperLink)e.Row.FindControl("Descarga"); //Creamos el link para la descargar File_EN f = (File_EN)e.Row.DataItem; string rutaArchivo = "Files/" + f.Propietario + "/" + HttpUtility.HtmlDecode(f.Nombre); //Guardamos la ruta del archivo Image icono = (Image)e.Row.FindControl("icono_fichero"); string extensionArchivo = Path.GetExtension(rutaArchivo); extensionArchivo = extensionArchivo.Substring(1, extensionArchivo.Length - 1); //quitar punto (carácter 0 del string) string rutaIcono = Server.MapPath("/styles/format-icons/" + extensionArchivo + ".svg"); icono.ImageUrl = File.Exists(rutaIcono) ? "~/styles/format-icons/" + extensionArchivo + ".svg" : "~/styles/format-icons/file.svg"; Texto_Descarga.NavigateUrl = Server.MapPath(rutaArchivo); //Copiamos la ruta del archivo a la URL para descargar } }
/** * Se encarga de borrar el archivo de la base de datos **/ public void BorrarFile(File_EN f) { SqlConnection nueva_conexion = new SqlConnection(Constants.nombreConexion); try { nueva_conexion.Open(); string delete = ""; delete = "Delete from Files where Files.ID = " + f.ID; SqlCommand com = new SqlCommand(delete, nueva_conexion); com.ExecuteNonQuery(); } catch (Exception ex) { } finally { nueva_conexion.Close(); } }
protected void Page_Load(object sender, EventArgs e) { // if (Request.QueryString.Count > 0) // { // if (Request.QueryString.Keys[0] == "ID") User_EN en = (User_EN)Session["user_session_data"]; if (en != null) { en.LeerUsuario(); //lee todos los datos del usuario de la base de datos, ya que la pagina solo proporciona login y password File_EN fi = new File_EN(); fi.Propietario = en.ID; //Para identificar al usuario //EL griedView, mostrara un tabla con todos los datos que nos devuelva MostrarFilesUsuarioNombreEn GridViewMostrarArchivos.DataSource = fi.MostrarFilesUsuarioNombreEn(); GridViewMostrarArchivos.DataBind(); } //} }
/* * Este método esta conectado al boton de subir archivo */ protected void Button_Upload_Click(object sender, EventArgs e) { if (IsPostBack) { String path = Server.MapPath("Files/"); //Ruta donde subir el archivo (en la carpeta "Files" de nuestro proyecto) if (FileUpload1.HasFile) { try { User_EN user = (User_EN)Session["user_session_data"]; if (user != null) { File_EN arx = new File_EN(); user.LeerUsuario(); //Leemos los datos del usuario arx.Nombre = FileUpload1.FileName; arx.Propietario = user.ID; //El propietario del archivo sera igual al id del usuario int id = arx.SubirArchivo(); string pathString = path + "/" + user.ID + "/"; //Se guardara dentro de una carpeta con el id del usuario Directory.CreateDirectory(pathString); FileUpload1.PostedFile.SaveAs(pathString + arx.Nombre); //Guardamos el archivo en la ruta correspondiente } else { Response.Write("Error. usuario no válido"); } } catch (Exception ex) { Response.Write("El archivo no se puede subir."); } } else { Response.Write("Cannot accept files of this type."); } } }
/* * Esta funcion esta conectada al boton para borrar el archivo */ protected void Borrar_Click(object sender, EventArgs e) { LinkButton lb = (LinkButton)sender; //Creamos un linkButton con el objeto emisor(sender) HyperLink h = (HyperLink)lb.FindControl("Borra"); //Conectamos el linkButton al link de borrar string rutaborra = h.NavigateUrl; File_EN f_bbdd = new File_EN(); f_bbdd.ID = Convert.ToInt32(h.Text); /* * Creamos una variable de tipo FileInfo con la ruta del archivo a borrar, * que se utiliza para proporcionar métodos * y propiedades para borrar entre otros */ FileInfo file = new FileInfo(rutaborra); if (file.Exists) { file.Delete(); //Borramos el archivo de la carpeta de nuestro proyecto f_bbdd.BorrarArchivo(); //Borramos el archivo de la base de datos Response.Redirect(Request.Url.AbsoluteUri); //Recarga página para refrescar los datos } }