/// <summary> /// Creates a Song object reading its data from the file's ID3 tags and adds it to the database if it is not already present. /// </summary> /// <param name="filename">Path to any mp3 file. Other types of files are not rejected if a valid ID3 tag is found within them.</param> public Song CreateFromFile(string filename) { Song song = (this.UseNewStandard) ? this.CreateFromNewId3Standard(filename) : this.CreateFromOldId3Standard(filename); if (song != null) { int?duration = song.Duration; song.Format = this.CreateFromAudioFrameHeader(filename, ref duration); song.Duration = duration; database.SaveChanges(); return(song); } else { song = this.CreateFromWaveTagger(filename); } if (song == null) { Song zeroInfoSong = database.Song.FindByName(GuessSongName(filename)); zeroInfoSong.Filename = filename; return(zeroInfoSong); } return(song); }
private void SaveIntoDatabase() //non qua, è un metodo generale, non riferito esclusivamente a echomanager { try { database.SaveChanges(); } catch (System.Data.UpdateException ue) { database.DeleteObject(ue.StateEntries[0].Entity); return; } }