Exemplo 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.");
        }
Exemplo n.º 2
0
        private void LeerArchivo(Usuario usuario)
        {
            string filePath = @"C:\Users\" + Environment.UserName + @"\" + usuario.Username + @".watchlist";

            try
            {
                using (StreamReader r = new StreamReader(filePath))
                {
                    string linea = r.ReadLine();
                    if (linea != "(Vacío)")
                    {
                        while (linea != null)
                        {
                            linea = linea.Replace("  ", "");
                            linea = linea.Replace(" ,", ",");
                            var         array = linea.Split(',');
                            Audiovisual temp  = new Audiovisual();
                            temp.Tipo   = array[0];
                            temp.Nombre = array[1];
                            temp.Anio   = int.Parse(array[2]);
                            temp.Genero = array[3];
                            if (temp.Tipo == "Documental")
                            {
                                var audiovisualCatalogo = DefaultConnection.BArbolDocumentaryPorNombre.Search(temp.Nombre);
                                if (audiovisualCatalogo != null)
                                {
                                    temp.AudioVisualID = audiovisualCatalogo.Apuntador.AudioVisualID;
                                    AgregarWatchlistArchivo(DefaultConnection.BArbolUsuarios.Raiz, usuario, temp);
                                }
                            }
                            else if (temp.Tipo == "Serie")
                            {
                                var audiovisualCatalogo = DefaultConnection.BArbolShowPorNombre.Search(temp.Nombre);
                                if (audiovisualCatalogo != null)
                                {
                                    temp.AudioVisualID = audiovisualCatalogo.Apuntador.AudioVisualID;
                                    AgregarWatchlistArchivo(DefaultConnection.BArbolUsuarios.Raiz, usuario, temp);
                                }
                            }
                            else if (temp.Tipo == "Película")
                            {
                                var audiovisualCatalogo = DefaultConnection.BArbolMoviePorNombre.Search(temp.Nombre);
                                if (audiovisualCatalogo != null)
                                {
                                    temp.AudioVisualID = audiovisualCatalogo.Apuntador.AudioVisualID;
                                    AgregarWatchlistArchivo(DefaultConnection.BArbolUsuarios.Raiz, usuario, temp);
                                }
                            }
                            linea = r.ReadLine();
                        }
                    }
                }
            }
            catch
            {
                TempData["alertMessage"] = "El archivo no es válido ";
            }
        }
Exemplo n.º 3
0
        public ActionResult WatchList(int id)
        {
            var model = new List <Audiovisual>();

            ConvertiraLista(ref model);
            Audiovisual temp = model.Where(x => x.AudioVisualID == id).FirstOrDefault();

            AgregarWatchlist(DefaultConnection.BArbolUsuarios.Raiz, UsuarioIngresado, temp);
            return(View(DefaultConnection.BArbolUsuarios.Search(UsuarioIngresado.Username).Apuntador.WatchList));
        }
Exemplo n.º 4
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);
            }
        }
Exemplo n.º 5
0
 public ActionResult AgregarAdmin([Bind(Include = "AudioVisualID,Tipo,Nombre,Anio,Genero")] Audiovisual audiovisual)
 {
     try
     {
         audiovisual.AudioVisualID = db.IDActual++;
         // TODO: Add insert logic here
         if (audiovisual.Tipo == "Serie")
         {
             if (DefaultConnection.BArbolShowPorNombre.Search(audiovisual.Nombre) == null)
             {
                 DefaultConnection.BArbolShowPorNombre.Insertar(audiovisual.Nombre, audiovisual);
                 string llave = audiovisual.Anio.ToString() + "_" + audiovisual.Nombre;
                 DefaultConnection.BArbolShowPorAnio.Insertar(llave, audiovisual);
                 llave = audiovisual.Genero.PadRight(20) + "_" + audiovisual.Nombre;
                 DefaultConnection.BArbolShowPorGenero.Insertar(llave, audiovisual);
             }
         }
         else if (audiovisual.Tipo == "Película")
         {
             if (DefaultConnection.BArbolMoviePorNombre.Search(audiovisual.Nombre) == null)
             {
                 DefaultConnection.BArbolMoviePorNombre.Insertar(audiovisual.Nombre, audiovisual);
                 string llave = audiovisual.Anio.ToString() + "_" + audiovisual.Nombre;
                 DefaultConnection.BArbolMoviePorAnio.Insertar(llave, audiovisual);
                 llave = audiovisual.Genero.PadRight(20) + "_" + audiovisual.Nombre;
                 DefaultConnection.BArbolMoviePorGenero.Insertar(llave, audiovisual);
             }
         }
         else if (audiovisual.Tipo == "Documental")
         {
             if (DefaultConnection.BArbolDocumentaryPorNombre.Search(audiovisual.Nombre) == null)
             {
                 DefaultConnection.BArbolDocumentaryPorNombre.Insertar(audiovisual.Nombre, audiovisual);
                 string llave = audiovisual.Anio.ToString() + "_" + audiovisual.Nombre;
                 DefaultConnection.BArbolDocumentaryPorAnio.Insertar(llave, audiovisual);
                 llave = audiovisual.Genero.PadRight(20) + "_" + audiovisual.Nombre;
                 DefaultConnection.BArbolDocumentaryPorGenero.Insertar(llave, audiovisual);
             }
         }
         else
         {
             TempData["alertMessage"] = "No es un tipo valido. (Documental, Pelicula, Serie) ";
             return(RedirectToAction("AgregarAdmin"));
         }
         return(RedirectToAction("InterfazAdmin"));
     }
     catch
     {
         return(View());
     }
 }
Exemplo n.º 6
0
 public ActionResult Delete(int id, FormCollection collection)
 {
     try
     {
         // TODO: Add delete logic here
         var model = new List <Audiovisual>();
         ConvertiraLista(ref model);
         Audiovisual temp = model.Where(x => x.AudioVisualID == id).FirstOrDefault();
         EliminarWatchlist(DefaultConnection.BArbolUsuarios.Raiz, UsuarioIngresado, temp);
         return(RedirectToAction("MostrarWatchList"));
     }
     catch
     {
         return(View());
     }
 }
Exemplo n.º 7
0
 public ActionResult Delete(int id, FormCollection collection)
 {
     try
     {
         // TODO: Add delete logic here
         var model = new List <Audiovisual>();
         ConvertiraLista(ref model);
         Audiovisual temp = model.Where(x => x.AudioVisualID == id).FirstOrDefault();
         if (temp.Tipo == "Documental")
         {
             DefaultConnection.BArbolDocumentaryPorNombre.Eliminar(temp.Nombre);
             string llave = temp.Anio.ToString() + "_" + temp.Nombre;
             DefaultConnection.BArbolDocumentaryPorAnio.Eliminar(llave);
             llave = temp.Genero.PadRight(20) + "_" + temp.Nombre;
             DefaultConnection.BArbolDocumentaryPorGenero.Eliminar(llave);
         }
         else if (temp.Tipo == "Serie")
         {
             DefaultConnection.BArbolShowPorNombre.Eliminar(temp.Nombre);
             string llave = temp.Anio.ToString() + "_" + temp.Nombre;
             DefaultConnection.BArbolShowPorAnio.Eliminar(llave);
             llave = temp.Genero.PadRight(20) + "_" + temp.Nombre;
             DefaultConnection.BArbolShowPorGenero.Eliminar(llave);
         }
         else
         {
             DefaultConnection.BArbolMoviePorNombre.Eliminar(temp.Nombre);
             string llave = temp.Anio.ToString() + "_" + temp.Nombre;
             DefaultConnection.BArbolMoviePorAnio.Eliminar(llave);
             llave = temp.Genero.PadRight(20) + "_" + temp.Nombre;
             DefaultConnection.BArbolMoviePorGenero.Eliminar(llave);
         }
         return(RedirectToAction("InterfazAdmin"));
     } catch
     {
         return(View());
     }
 }
Exemplo n.º 8
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.");
        }
Exemplo n.º 9
0
        private void EscribirArbolAudiovisual(BNodo <string, Audiovisual> nodo, int grado, ref int contador, int contadorPadre, ref StreamWriter writer, string ruta, BNodo <string, Audiovisual> raiz)
        {
            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++)
            {
                Audiovisual item = nodo.Entradas[i].Apuntador;
                linea += $"|{item.ToFixedSizeString()}";
            }
            for (int i = nodo.Entradas.Count(); i < (grado - 1); i++)
            {
                linea += $"|{String.Format("{0, -66}", "")}";
            }
            writer.WriteLine(linea);
            if (nodo != 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)
            {
                EscribirArbolAudiovisual(nodo.Hijos[contadorHijos], grado, ref contador, contadorPadre, ref writer, ruta, raiz);
                contadorHijos++;
            }
        }
Exemplo n.º 10
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);
                }
            }
        }
Exemplo n.º 11
0
        public ActionResult CargaArchivoJSON(HttpPostedFileBase file)
        {
            Archivo modelo   = new Archivo();
            string  filePath = string.Empty;

            try
            {
                if (file != null)
                {
                    string ruta = Server.MapPath("~/Temp/");

                    if (!Directory.Exists(ruta))
                    {
                        Directory.CreateDirectory(ruta);
                    }

                    filePath = ruta + Path.GetFileName(file.FileName);

                    string extension = Path.GetExtension(file.FileName);

                    file.SaveAs(filePath);

                    using (StreamReader r = new StreamReader(filePath))
                    {
                        string  json  = r.ReadToEnd();
                        dynamic array = JsonConvert.DeserializeObject(json);
                        foreach (var item in array)
                        {
                            dynamic itemtemp = JsonConvert.DeserializeObject(item.Value.ToString());

                            Audiovisual temp = new Audiovisual();
                            temp.Tipo          = itemtemp.Tipo.Value;
                            temp.Nombre        = itemtemp.Nombre.Value;
                            temp.Anio          = Convert.ToInt16(itemtemp.Anio.Value);
                            temp.Genero        = itemtemp.Genero.Value;
                            temp.AudioVisualID = ++db.IDActual;
                            if (temp.Tipo == "Serie")
                            {
                                if (DefaultConnection.BArbolShowPorNombre.Search(temp.Nombre) == null)
                                {
                                    DefaultConnection.BArbolShowPorNombre.Insertar(temp.Nombre, temp);
                                    string llave = temp.Anio.ToString().PadRight(4) + "_" + temp.Nombre;
                                    DefaultConnection.BArbolShowPorAnio.Insertar(llave, temp);
                                    llave = temp.Genero.PadRight(20) + "_" + temp.Nombre;
                                    DefaultConnection.BArbolShowPorGenero.Insertar(llave, temp);
                                }
                            }
                            else if (temp.Tipo == "Película")
                            {
                                if (DefaultConnection.BArbolMoviePorNombre.Search(temp.Nombre) == null)
                                {
                                    DefaultConnection.BArbolMoviePorNombre.Insertar(temp.Nombre, temp);
                                    string llave = temp.Anio.ToString().PadRight(4) + "_" + temp.Nombre;
                                    DefaultConnection.BArbolMoviePorAnio.Insertar(llave, temp);
                                    llave = temp.Genero.PadRight(20) + "_" + temp.Nombre;
                                    DefaultConnection.BArbolMoviePorGenero.Insertar(llave, temp);
                                }
                            }
                            else if (temp.Tipo == "Documental")
                            {
                                if (DefaultConnection.BArbolDocumentaryPorNombre.Search(temp.Nombre) == null)
                                {
                                    DefaultConnection.BArbolDocumentaryPorNombre.Insertar(temp.Nombre, temp);
                                    string llave = temp.Anio.ToString().PadRight(4) + "_" + temp.Nombre;
                                    DefaultConnection.BArbolDocumentaryPorAnio.Insertar(llave, temp);
                                    llave = temp.Genero.PadRight(20) + "_" + temp.Nombre;
                                    DefaultConnection.BArbolDocumentaryPorGenero.Insertar(llave, temp);
                                }
                            }
                        }
                    }


                    modelo.SubirArchivo(ruta, file);
                }
                ViewBag.Error    = modelo.error;
                ViewBag.Correcto = modelo.Confirmacion;
                return(RedirectToAction("InterfazAdmin"));
            }
            catch
            {
                TempData["alertMessage"] = "El archivo no es válido ";
                return(RedirectToAction("CargaArchivoJSON"));
            }
        }