Ejemplo n.º 1
0
        public static void cargarAlbumesCSV(string fichero)
        {
            Log.Instance.ImprimirMensaje("Cargando álbumes CSV almacenados en " + fichero, TipoMensaje.Info, "cargarAlbumesLegacy(string)");
            Stopwatch crono = Stopwatch.StartNew();
            //cargando CSV a lo bestia
            int lineaC = 1;

            using (StreamReader lector = new StreamReader(fichero))
            {
                string linea;
                while (!lector.EndOfStream)
                {
                    linea = lector.ReadLine();
                    while (linea == "")
                    {
                        linea = lector.ReadLine();
                        lineaC++;
                    }

                    if (linea == null)
                    {
                        continue;                //si no hay nada tu sigue, que hemos llegado al final del fichero, después del nulo porque siempre al terminar un disco pongo línea nueva.
                    }
                    string[] datos = linea.Split(';');
                    if (datos.Length != 8)
                    {
                        Log.Instance.ImprimirMensaje("Error cargando el álbum. Revise la línea " + lineaC + " del fichero " + fichero, TipoMensaje.Error);
                        MessageBox.Show("Error cargando el álbum. Revise la línea " + lineaC + " del fichero " + fichero, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        Environment.Exit(-1);
                    }
                    short  nC  = 0;
                    int    gen = findGenero(datos[4]);
                    Genero g   = Programa.generos[gen];
                    if (string.IsNullOrEmpty(datos[5]))
                    {
                        datos[5] = string.Empty;
                    }
                    Album a = null;
                    try
                    {
                        nC = Convert.ToInt16(datos[3]);
                        a  = new Album(g, datos[0], datos[1], Convert.ToInt16(datos[2]), Convert.ToInt16(datos[3]), datos[5]);
                    }
                    catch (FormatException e)
                    {
                        Log.Instance.ImprimirMensaje("Error cargando el álbum. Revise la línea " + lineaC + " del fichero " + fichero, TipoMensaje.Error);
                        MessageBox.Show("Error cargando el álbum. Revise la línea " + lineaC + " del fichero " + fichero, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        Environment.Exit(-1);
                    }
                    if (!string.IsNullOrEmpty(datos[6]))
                    {
                        a.SetSpotifyID(datos[6]);
                    }
                    if (!string.IsNullOrEmpty(datos[7]))
                    {
                        a.DirectorioSonido = datos[7];
                    }
                    bool exito = false;
                    for (int i = 0; i < nC; i++)
                    {
                        exito = false;
                        linea = lector.ReadLine();
                        lineaC++;
                        if (string.IsNullOrEmpty(linea))
                        {
                            /*System.Windows.Forms.MessageBox.Show("mensajeError"+Environment.NewLine
                             + a.nombre + " - " + a.nombre + Environment.NewLine
                             + "saltarAlSiguiente", "error", System.Windows.Forms.MessageBoxButtons.OK);*/
                            break; //no sigue cargando el álbum
                        }
                        else
                        {
                            try
                            {
                                exito = true;
                                string[] datosCancion = linea.Split(';');
                                if (datosCancion.Length == 3)
                                {
                                    byte    bonus = Convert.ToByte(datosCancion[2]);
                                    Cancion c     = new Cancion(datosCancion[0], TimeSpan.FromSeconds(Convert.ToInt32(datosCancion[1])), ref a, Convert.ToBoolean(bonus));
                                    a.agregarCancion(c, i);
                                }
                                else
                                {
                                    CancionLarga cl = new CancionLarga(datosCancion[0], ref a);
                                    int          np = Convert.ToInt32(datosCancion[1]);
                                    for (int j = 0; j < np; j++)
                                    {
                                        linea = lector.ReadLine();
                                        lineaC++;
                                        datosCancion = linea.Split(';');
                                        Cancion c = new Cancion(datosCancion[0], TimeSpan.FromSeconds(Convert.ToInt32(datosCancion[1])), ref a);
                                        cl.addParte(ref c);
                                    }
                                    a.agregarCancion(cl, i);
                                }
                            }
                            catch (FormatException e)
                            {
                                Log.Instance.ImprimirMensaje("Error cargando el álbum. Revise la línea " + lineaC + " del fichero " + fichero, TipoMensaje.Error);
                                MessageBox.Show("Error cargando el álbum. Revise la línea " + lineaC + " del fichero " + fichero, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                Environment.Exit(-1);
                            }
                        }
                    }
                    if (miColeccion.estaEnColeccion(a))
                    {
                        exito = false; //pues ya está repetido.
                        Log.Instance.ImprimirMensaje("Álbum repetido -> " + a.artista + " - " + a.nombre, TipoMensaje.Advertencia);
                    }
                    if (exito)
                    {
                        miColeccion.agregarAlbum(ref a);
                    }
                    a.LevantarBorrado();
                    lineaC++;
                }
            }
            crono.Stop();
            Log.Instance.ImprimirMensaje("Cargados " + miColeccion.albumes.Count + " álbumes correctamente", TipoMensaje.Correcto, crono);
            refrescarVista();
        }
Ejemplo n.º 2
0
        static void Main(String[] args)
        {
            //prepara la aplicación para que ejecute formularios y demás.
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Idioma      = ConfigurationManager.AppSettings["Idioma"];
            textosLocal = new ResXResourceSet(@"./idiomas/" + "original." + Idioma + ".resx");
            Log    Log = Log.Instance;
            string versionNueva;

            if (HayActualizacions(out versionNueva))
            {
                Log.ImprimirMensaje("Está disponible la actualización " + versionNueva, TipoMensaje.Info);
                DialogResult act = MessageBox.Show(textosLocal.GetString("actualizacion1") + Environment.NewLine + versionNueva + Environment.NewLine + textosLocal.GetString("actualizacion2"), "", MessageBoxButtons.YesNo);
                if (act == DialogResult.Yes)
                {
                    Process.Start("https://github.com/orestescm76/aplicacion-gestormusica/releases");
                }
            }
            if (args.Contains("-consola"))
            {
                AllocConsole();
                Console.Title = "Consola debug v" + version;
                Console.WriteLine("Log creado " + DateTime.Now);
                Log.ImprimirMensaje("Se ha iniciado la aplicación con el parámetro -consola", TipoMensaje.Info);
            }
            miColeccion = new Coleccion();
            configFileMap.ExeConfigFilename = Environment.CurrentDirectory + "/aplicacion_musica.exe.config";
            config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);

            SpotifyActivado = false;
            principal       = new principal();
            if (!args.Contains("-noSpotify"))
            {
                if (config.AppSettings.Settings["VinculadoConSpotify"].Value == "false")
                {
                    _spotify = new Spotify(false);
                }
                else
                {
                    _spotify        = new Spotify(true);
                    SpotifyActivado = true;
                    principal.DesactivarVinculacion();
                }
            }
            else
            {
                SpotifyActivado = false;
                Log.ImprimirMensaje("Se ha iniciado la aplicación con el parámetro -noSpotify, no habrá integración con Spotify", TipoMensaje.Info);
                _spotify = null;
                principal.HayInternet(false);
            }

            if (args.Contains("-modoStream"))
            {
                ModoStream = true;
                Log.ImprimirMensaje("Iniciando modo Stream", TipoMensaje.Info);
            }

            Reproductor reproductor = Reproductor.Instancia;

            if (!ModoStream)
            {
                Log.ImprimirMensaje("Configurando géneros", TipoMensaje.Info);
                for (int i = 0; i < idGeneros.Length; i++)
                {
                    if (idGeneros[i] == "")
                    {
                        generos[i] = new Genero(idGeneros[i]);
                        generos[i].setTraduccion("-");
                    }
                    else
                    {
                        generos[i] = new Genero(idGeneros[i]);
                        generos[i].setTraduccion(textosLocal.GetString("genero_" + generos[i].Id));
                    }
                }
                if (args.Contains("-json"))
                {
                    cargarAlbumes("discos.json");
                }
                else
                {
                    if (File.Exists("discos.csv"))
                    {
                        cargarAlbumesCSV("discos.csv");
                        cargarCDS();
                    }
                    else
                    {
                        Log.ImprimirMensaje("discos.csv no existe, se creará una base de datos vacía.", TipoMensaje.Advertencia);
                    }
                }
                if (File.Exists("paths.txt"))
                {
                    CargarPATHS();
                }
            }
            //creo el Reproductor
            Reproductor.Instancia = new Reproductor();
            Reproductor.Instancia.RefrescarTextos();
            if (ModoStream) //enchufa la app sin nada, solo el spotify y el texto
            {
                Application.Run();
            }
            else if (!args.Contains("-reproductor")) //tirale con el principal
            {
                Application.Run(principal);
            }
            else
            {
                ModoReproductor = true;
                Application.Run(Reproductor.Instancia);
                //Reproductor.Instancia.Show();
            }
            if (_spotify != null && tareaRefrescoToken != null)
            {
                tareaRefrescoToken.Abort();
            }
            if (!ModoStream)
            {
                GuardarPATHS();
            }
            config.AppSettings.Settings["Idioma"].Value = Idioma;
            config.Save();

            if (File.Exists("./covers/np.jpg"))
            {
                try
                {
                    File.Delete("./covers/np.jpg");
                }
                catch (IOException)
                {
                    Log.ImprimirMensaje("No se ha podido eliminar el fichero np.jpg.", TipoMensaje.Advertencia);
                }
            }
            if (args.Contains("-consola"))
            {
                Console.WriteLine("Programa finalizado, presione una tecla para continuar...");
                Console.ReadKey();
            }
        }
Ejemplo n.º 3
0
        private void add_Click(object sender, EventArgs e)
        {
            string titulo, artista;
            bool   cancelado = false;
            short  year, nC;

            try
            {
                titulo  = tituloTextBox.Text;
                artista = artistaTextBox.Text;
                int    gn   = comboBox1.SelectedIndex;
                string gent = comboBox1.SelectedItem.ToString();
                year = Convert.ToInt16(yearTextBox.Text);
                nC   = Convert.ToInt16(numCancionesTextBox.Text);
                Genero g = Programa.generos[Programa.findGeneroTraducido(gent)];
                Album  a = null;
                if (caratula == "")
                {
                    a = new Album(g, titulo, artista, year, nC, "");
                }
                else
                {
                    a = new Album(g, titulo, artista, year, nC, caratula);
                }
                Programa.miColeccion.agregarAlbum(ref a);
                DialogResult cancelar = DialogResult.OK;
                for (int i = 0; i < nC; i++)
                {
                    agregarCancion agregarCancion = new agregarCancion(ref a, i);
                    Hide();
                    cancelar = agregarCancion.ShowDialog();
                    if (cancelar == DialogResult.Cancel)
                    {
                        Log.Instance.ImprimirMensaje("Cancelado el proceso de añadir álbum", TipoMensaje.Advertencia);
                        Programa.miColeccion.quitarAlbum(ref a);
                        Close();
                        cancelado = true;
                        break;
                    }
                    else if (cancelar == DialogResult.None)
                    {
                        continue;
                    }
                }
                if (!cancelado)
                {
                    Log.Instance.ImprimirMensaje(artista + " - " + titulo + " agregado correctamente", TipoMensaje.Correcto);
                }
                Programa.refrescarVista();
                Close();
            }
            catch (NullReferenceException ex)
            {
                Log.Instance.ImprimirMensaje(ex.Message, TipoMensaje.Error);
                MessageBox.Show(Programa.textosLocal.GetString("error_vacio1"));
            }

            catch (FormatException ex)
            {
                Log.Instance.ImprimirMensaje(ex.Message, TipoMensaje.Error);
                MessageBox.Show(Programa.textosLocal.GetString("error_formato"));
                //throw;
            }
        }