Esempio n. 1
0
        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.");
        }
Esempio n. 2
0
 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);
     }
 }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
        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);
                }
            }
        }
Esempio n. 6
0
        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++;
            }
        }
Esempio n. 7
0
        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.");
        }