private Guid GetArtist(Tag tag, ref Repository repo) { Guid id; lock (artistLock) { var artist = repo.Artists.FirstOrDefault(x => x.Name == tag.FirstArtist); if (artist == null) { artist = new Artist {Id = Guid.NewGuid()}; artist.MBID = string.IsNullOrEmpty(tag.MusicBrainzArtistId) ? (Guid?) null : new Guid(tag.MusicBrainzArtistId); artist.Name = tag.FirstArtist; repo.Artists.InsertOnSubmit(artist); repo.SubmitChanges(); } id = artist.Id; } return id; }
private static void InsertAlbumArt(Guid albumId, IPicture pic, ref Repository repo) { if (repo.Images.Count(x => x.LinkedId == albumId) > 0) return; var bitmap = ImageUtilities.ImageFromBuffer(pic.Data.ToArray()); var img = new Image { Height = (int) bitmap.Height, Id = Guid.NewGuid(), ImageData = pic.Data.ToArray(), LinkedId = albumId, Size = (int) ImageSize.ExtraLarge, Url = "", Width = (int) bitmap.Width }; repo.Images.InsertOnSubmit(img); repo.SubmitChanges(); }
private Guid GetAlbum(Guid artistId, Tag tag, ref Repository repo) { Guid id; lock (albumLock) { var album = repo.Albums.FirstOrDefault(x => x.ArtistId == artistId && x.Name == tag.Album); if (album == null) { album = new Album {Id = Guid.NewGuid()}; album.MBID = string.IsNullOrEmpty(tag.MusicBrainzReleaseId) ? (Guid?) null : new Guid(tag.MusicBrainzReleaseId); album.Name = tag.Album; album.ArtistId = artistId; repo.Albums.InsertOnSubmit(album); repo.SubmitChanges(); } id = album.Id; } return id; }