public TagInfo GetTagInfo(string pathToAudioFile) { TAG_INFO tags = BassTags.BASS_TAG_GetFromFile(pathToAudioFile); TagInfo tag = new TagInfo() { Duration = tags.duration, Album = tags.album, Artist = tags.artist, Title = tags.title, AlbumArtist = tags.albumartist, Genre = tags.genre, Year = tags.year }; return tag; }
/// <summary> /// Get corresponding Album /// </summary> /// <param name = "tags">File Tags</param> /// <returns>Album to be used while inserting the fingerprints into the database</returns> private Album GetCoresspondingAlbum(TagInfo tags) { string album = tags.Album; Album albumToInsert = null; if (string.IsNullOrEmpty(album)) { albumToInsert = unknownAlbum; //The album is unknown } else { lock (lockObject) { foreach (Album a in listOfAllAlbums) if (a.Name == album) { albumToInsert = a; //There is already such an album in the database break; } if (albumToInsert == null) //No such album in the database INSERT! { int releaseYear = -1; try { releaseYear = Convert.ToInt32(tags.Year.Split('-')[0].Trim()); } catch (Exception) { /*swallow*/ } albumToInsert = (releaseYear < 1900 || releaseYear > 2200) ? new Album(-1, album) : new Album(-1, album, releaseYear); try { dalManager.InsertAlbum(albumToInsert); //Insert new ALBUM } catch (DalGatewayException ex) { if (MessageBox.Show(ex.Message + "\n Continue?", Resources.ExceptioInDal, MessageBoxButtons.OKCancel, MessageBoxIcon.Error) == DialogResult.Cancel) return null; albumToInsert = unknownAlbum; } if (albumToInsert != unknownAlbum) listOfAllAlbums.Add(albumToInsert); //Modify Local Variable } } } return albumToInsert; }