private string AgregarWatchlistArchivo(BNodo <string, Usuario> nodo, Usuario usuarioIngresado, Audiovisual audiovisual) { int contador; contador = 0; foreach (var item in nodo.Hijos) { AgregarWatchlistArchivo(nodo.Hijos[contador], usuarioIngresado, audiovisual); contador++; } foreach (var item in nodo.Entradas) { if (item.Apuntador == usuarioIngresado) { Audiovisual yaAgregado = item.Apuntador.WatchList.Where(x => x.Nombre == audiovisual.Nombre).FirstOrDefault(); if (yaAgregado == null) { item.Apuntador.WatchList.Add(audiovisual); } else { return("Este elemento ya se encuentra en su watchlist"); } } } return("El elemento fue agregado exitosamente."); }
public static void AgregaraLista(ref List <Audiovisual> model, BNodo <string, Audiovisual> nodo) { foreach (var item in nodo.Hijos) { AgregaraLista(ref model, item); } foreach (var item in nodo.Entradas) { model.Add(item.Apuntador); } }
private void LeerArbolAudiovisual(string[] lines, int nlinea, int grado, BNodo <string, Audiovisual> nodoPadre, BArbol <string, Audiovisual> arbol, int llave) { string[] linea = lines[nlinea].Split('|'); BNodo <string, Audiovisual> Nodo = new BNodo <string, Audiovisual>(grado); for (int i = (2 + grado); i < (linea.Count()); i++) { if (!(linea[i] == String.Format("{0, -66}", ""))) { linea[i] = linea[i].Replace(" ", ""); linea[i] = linea[i].Replace(" ,", ","); linea[i] = linea[i].Trim(); string[] lineaAudiovisual = linea[i].Split(','); Audiovisual nuevoAudiovisual = new Audiovisual(); nuevoAudiovisual.Tipo = lineaAudiovisual[0]; nuevoAudiovisual.Nombre = lineaAudiovisual[1]; nuevoAudiovisual.Anio = Convert.ToInt16(lineaAudiovisual[2]); nuevoAudiovisual.Genero = lineaAudiovisual[3]; nuevoAudiovisual.AudioVisualID = db.IDActual++; Entry <string, Audiovisual> entry = new Entry <string, Audiovisual>(); if (llave == 0) { entry.LLave = nuevoAudiovisual.Nombre; } else if (llave == 1) { entry.LLave = nuevoAudiovisual.Genero.PadRight(20) + "_" + nuevoAudiovisual.Nombre; } else { entry.LLave = nuevoAudiovisual.Anio.ToString().PadRight(4) + "_" + nuevoAudiovisual.Nombre; } entry.Apuntador = nuevoAudiovisual; Nodo.Entradas.Add(entry); } } for (int i = 2; i < (2 + grado); i++) { if (!(linea[i] == String.Format("{0, -3}", ""))) { LeerArbolAudiovisual(lines, (Convert.ToInt16(linea[i]) + 2), grado, Nodo, arbol, llave); } } if (nodoPadre == null) { arbol.Raiz = Nodo; } else { nodoPadre.Hijos.Add(Nodo); } }
private void LeerArbolUsuarios(string[] lines, int nlinea, int grado, BNodo <string, Usuario> nodoPadre, BArbol <string, Usuario> arbol) { string[] linea = lines[nlinea].Split('|'); BNodo <string, Usuario> Nodo = new BNodo <string, Usuario>(grado); for (int i = (2 + grado); i < (linea.Count()); i++) { if (!(linea[i] == String.Format("{0, -87}", ""))) { linea[i] = linea[i].Replace(" ", ""); linea[i] = linea[i].Replace(" ,", ","); linea[i] = linea[i].Trim(); string[] lineaUsuario = linea[i].Split(','); Usuario nuevoUsuario = new Usuario(); nuevoUsuario.Nombre = lineaUsuario[0]; nuevoUsuario.Apellido = lineaUsuario[1]; nuevoUsuario.Edad = Convert.ToInt16(lineaUsuario[2]); nuevoUsuario.Username = lineaUsuario[3]; nuevoUsuario.Password = lineaUsuario[4]; nuevoUsuario.IDUsuario = db.IDActual++; Entry <string, Usuario> entry = new Entry <string, Usuario>(); entry.LLave = nuevoUsuario.Username; entry.Apuntador = nuevoUsuario; Nodo.Entradas.Add(entry); DefaultConnection.usuarios.Add(nuevoUsuario); } } for (int i = 2; i < (2 + grado); i++) { if (!(linea[i] == String.Format("{0, -3}", ""))) { LeerArbolUsuarios(lines, (Convert.ToInt16(linea[i]) + 2), grado, Nodo, arbol); } } if (nodoPadre == null) { arbol.Raiz = Nodo; } else { nodoPadre.Hijos.Add(Nodo); } }
private void EliminarWatchlist(BNodo <string, Usuario> nodo, Usuario usuarioIngresado, Audiovisual audiovisual) { int contador; contador = 0; foreach (var item in nodo.Hijos) { EliminarWatchlist(nodo.Hijos[contador], usuarioIngresado, audiovisual); contador++; } foreach (var item in nodo.Entradas) { if (item.Apuntador == usuarioIngresado) { item.Apuntador.WatchList.Remove(audiovisual); string rutaWatchlistUsuario = @"C:\Users\" + Environment.UserName + @"\" + item.Apuntador.Username + @".watchlist"; EliminarListaUsuario(rutaWatchlistUsuario, usuarioIngresado); } } }
private void EscribirArbolUsuario(BNodo <string, Usuario> nodo, int grado, ref int contador, int contadorPadre, ref StreamWriter writer, string ruta) { string linea; linea = $"{contador.ToString("000;-000")}|{contadorPadre.ToString("000;-000")}"; for (int i = 0; i < grado; i++) { linea += $"|{String.Format("{0, -3}", "")}"; } for (int i = 0; i < nodo.Entradas.Count(); i++) { Usuario item = nodo.Entradas[i].Apuntador; linea += $"|{item.ToFixedSizeString()}"; } for (int i = nodo.Entradas.Count(); i < (grado - 1); i++) { linea += $"|{String.Format("{0, -87}", "")}"; } writer.WriteLine(linea); if (nodo != DefaultConnection.BArbolUsuarios.Raiz) { writer.Close(); ReescribirArchivo(contadorPadre, contador, ruta); writer = new StreamWriter(ruta, true); } contador++; int contadorHijos; contadorHijos = 0; contadorPadre = contador - 1; foreach (var item in nodo.Hijos) { EscribirArbolUsuario(nodo.Hijos[contadorHijos], grado, ref contador, contadorPadre, ref writer, ruta); contadorHijos++; } }
private string AgregarWatchlist(BNodo <string, Usuario> nodo, Usuario usuarioIngresado, Audiovisual audiovisual) { int contador; contador = 0; foreach (var item in nodo.Hijos) { AgregarWatchlist(nodo.Hijos[contador], usuarioIngresado, audiovisual); contador++; } foreach (var item in nodo.Entradas) { if (item.Apuntador == usuarioIngresado) { Audiovisual yaAgregado = item.Apuntador.WatchList.Where(x => x.Nombre == audiovisual.Nombre).FirstOrDefault(); if (yaAgregado == null) { item.Apuntador.WatchList.Add(audiovisual); string rutaWatchlistUsuario = @"C:\Users\" + Environment.UserName + @"\" + item.Apuntador.Username + @".watchlist"; string audiovisualobject = item.Apuntador.WatchList.Last().ToFixedSizeString(); if (item.Apuntador.WatchList.Count() == 1) { AgregarListaUsuario(rutaWatchlistUsuario, false, audiovisualobject); } else { AgregarListaUsuario(rutaWatchlistUsuario, true, audiovisualobject); } } else { return("Este elemento ya se encuentra en su watchlist"); } } } return("El elemento fue agregado exitosamente."); }