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(); }
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(); } }
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; } }