Exemple #1
0
 private void guardarDiscos(string nombre, TipoGuardado tipoGuardado)
 {
     if (tipoGuardado == TipoGuardado.Digital)
     {
         Programa.GuardarDiscos(nombre, TipoGuardado.Digital);
     }
     else
     {
         Programa.GuardarDiscos(nombre, tipoGuardado, true);
     }
 }
Exemple #2
0
        public static void GuardarDiscos(string path, TipoGuardado tipoGuardado, bool json = false)
        {
            Stopwatch crono = Stopwatch.StartNew();
            FileInfo  fich  = new FileInfo(path);

            if (json)
            {
                using (StreamWriter salida = fich.CreateText())
                {
                    switch (tipoGuardado)
                    {
                    case TipoGuardado.Digital:
                        Log.Instance.ImprimirMensaje(nameof(GuardarDiscos) + " - Guardando la base de datos... (" + Programa.miColeccion.albumes.Count + " discos)", TipoMensaje.Info);
                        Log.Instance.ImprimirMensaje("Nombre del fichero: " + path, TipoMensaje.Info);
                        foreach (Album a in Programa.miColeccion.albumes)
                        {
                            JsonSerializer s = new JsonSerializer();
                            s.TypeNameHandling = TypeNameHandling.All;
                            salida.WriteLine(JsonConvert.SerializeObject(a));
                        }
                        break;

                    case TipoGuardado.CD:
                        Log.Instance.ImprimirMensaje(nameof(GuardarDiscos) + " - Guardando la base de datos... (" + Programa.miColeccion.cds.Count + " cds)", TipoMensaje.Info);
                        Log.Instance.ImprimirMensaje("Nombre del fichero: " + path, TipoMensaje.Info);
                        foreach (DiscoCompacto compacto in Programa.miColeccion.cds)
                        {
                            salida.WriteLine(JsonConvert.SerializeObject(compacto));
                        }
                        break;

                    default:
                        break;
                    }
                }
            }
            else
            {
                using (StreamWriter salida = fich.CreateText())
                {
                    switch (tipoGuardado)
                    {
                    case TipoGuardado.Digital:
                        Log.Instance.ImprimirMensaje(nameof(GuardarDiscos) + " - Guardando la base de datos... (" + Programa.miColeccion.albumes.Count + " discos)", TipoMensaje.Info);
                        Log.Instance.ImprimirMensaje("Nombre del fichero: " + path, TipoMensaje.Info);
                        foreach (Album a in miColeccion.albumes)
                        {
                            if (!(a.canciones[0] == null))     //no puede ser un album con 0 canciones
                            {
                                salida.WriteLine(a.nombre + ";" + a.artista + ";" + a.year + ";" + a.numCanciones + ";" + a.genero.Id + ";" + a.caratula + ";" + a.IdSpotify + ";" + a.DirectorioSonido);
                                for (int i = 0; i < a.numCanciones; i++)
                                {
                                    if (a.canciones[i] is CancionLarga cl)
                                    {
                                        salida.WriteLine(cl.titulo + ";" + cl.Partes.Count);    //no tiene duracion y son 2 datos a guardar
                                        foreach (Cancion parte in cl.Partes)
                                        {
                                            salida.WriteLine(parte.titulo + ";" + parte.duracion.TotalSeconds);
                                        }
                                    }
                                    else     //titulo;400;0
                                    {
                                        salida.WriteLine(a.canciones[i].titulo + ";" + a.canciones[i].duracion.TotalSeconds + ";" + Convert.ToInt32(a.canciones[i].Bonus));
                                    }
                                }
                            }
                            salida.WriteLine();
                        }
                        break;

                    case TipoGuardado.CD:
                        break;

                    case TipoGuardado.Vinilo:
                        break;

                    default:
                        break;
                    }
                }
            }
            crono.Stop();
            fich.Refresh();
            Log.Instance.ImprimirMensaje(nameof(GuardarDiscos) + "- Guardado", TipoMensaje.Correcto, crono);
            Log.Instance.ImprimirMensaje("Tamaño: " + fich.Length + " bytes", TipoMensaje.Info);
        }