public MusicArtist Update(MusicArtist updatedArtist) { var entity = db.Artists.Attach(updatedArtist); entity.State = EntityState.Modified; return(updatedArtist); }
private async Task RefreshArtist(MusicArtist item, MetadataRefreshOptions options, CancellationToken cancellationToken) { var albums = _libraryManager .GetItemList(new InternalItemsQuery { IncludeItemTypes = new[] { nameof(MusicAlbum) }, ArtistIds = new[] { item.Id }, DtoOptions = new DtoOptions(false) { EnableImages = false } }) .OfType <MusicAlbum>(); var musicArtists = albums .Select(i => i.MusicArtist) .Where(i => i != null); var musicArtistRefreshTasks = musicArtists.Select(i => i.ValidateChildren(new SimpleProgress <double>(), cancellationToken, options, true)); await Task.WhenAll(musicArtistRefreshTasks).ConfigureAwait(false); try { await item.RefreshMetadata(options, cancellationToken).ConfigureAwait(false); } catch (Exception ex) { _logger.LogError(ex, "Error refreshing library"); } }
public void Should_Delete_Music() { //ARRANGE var albums = AlbumStub.Albums; var artist = ArtistStub.Artist; var music = MusicStub.Music; using (var context = _sqlLifeFake.GetDbContext()) { AlbumService albumService = new AlbumService(context); ArtistService artistService = new ArtistService(context); MusicService musicService = new MusicService(context); //ACT var insertArtist = artistService.InsertArtistAsync(artist); albums[0].ArtistId = insertArtist.Result.Id; var albumInsert = albumService.InsertAlbumAsync(albums[0]); music.AlbumId = albumInsert.Result.Id; music.MusicArtists = new List <MusicArtist>(); MusicArtist musicArtist = new MusicArtist { ArtistId = insertArtist.Result.Id }; music.MusicArtists.Add(musicArtist); var deleteMusic = musicService.InsertMusicAsync(music); var result = musicService.DeleteMusicAsync(deleteMusic.Result.Id); //ASSERT result.Result.Should().BeFalse(); } }
private async Task RefreshArtist(RefreshItem request, MusicArtist item) { var cancellationToken = CancellationToken.None; var albums = _libraryManager.RootFolder .RecursiveChildren .OfType <MusicAlbum>() .Where(i => i.HasArtist(item.Name)) .ToList(); var musicArtists = albums .Select(i => i.Parent) .OfType <MusicArtist>() .ToList(); var options = GetRefreshOptions(request); var musicArtistRefreshTasks = musicArtists.Select(i => i.ValidateChildren(new Progress <double>(), cancellationToken, options, true)); await Task.WhenAll(musicArtistRefreshTasks).ConfigureAwait(false); try { await item.RefreshMetadata(options, CancellationToken.None).ConfigureAwait(false); } catch (Exception ex) { Logger.ErrorException("Error refreshing library", ex); } }
private async Task RefreshArtist(MusicArtist item, MetadataRefreshOptions options) { var cancellationToken = CancellationToken.None; var albums = _libraryManagerFactory() .GetItemList(new InternalItemsQuery { IncludeItemTypes = new[] { typeof(MusicAlbum).Name }, ArtistIds = new[] { item.Id.ToString("N") } }) .OfType <MusicAlbum>() .ToList(); var musicArtists = albums .Select(i => i.MusicArtist) .Where(i => i != null) .ToList(); var musicArtistRefreshTasks = musicArtists.Select(i => i.ValidateChildren(new Progress <double>(), cancellationToken, options, true)); await Task.WhenAll(musicArtistRefreshTasks).ConfigureAwait(false); try { await item.RefreshMetadata(options, CancellationToken.None).ConfigureAwait(false); } catch (Exception ex) { _logger.ErrorException("Error refreshing library", ex); } }
private void Load() { XBMC.SetIp(Settings.Default.Ip); XBMC.SetConnectionTimeout(Settings.Default.ConnectionTimeout); XBMC.SetCredentials(Settings.Default.UserName, Settings.Default.Password); XBMC.NowPlaying.FistTime = true; XBMC.Status.Refresh(); //Chargement des artistes string[] _art = XBMC.Database.GetArtists(); ObservableCollection <MusicArtist> _artistes = new ObservableCollection <MusicArtist>(); if (_art != null) { foreach (string item in _art) { MusicArtist art = new MusicArtist(); art.Artist = item; _artistes.Add(art); } } lstArtistes.ItemsSource = _artistes; Console.WriteLine(lstPlaylist.Items.Count.ToString()); }
public static void ProcessArtistData(MusicArtist source, Artist target) { target.PremiereDate = source.PremiereDate; target.ProductionYear = source.ProductionYear; target.Tags = source.Tags.ToList(); target.Overview = source.Overview; target.ProductionLocations = source.ProductionLocations.ToList(); }
/// <summary> /// From music file extract album,artist, band. /// </summary> public void Process() { FileInfo[] musicFiles = null; TagLib.File tagMusicFile = null; //string album = ""; List <string> artists = new List <string>(); // DirectoryProcess dProcess = new DirectoryProcess(); List <DirectoryInfo> dirList = new DirectoryProcess().GetDirectories(); MusicArtist artist = new MusicArtist(); this.listOfMusicFileTagTempData = new List <TemplateMusicFileTag>(); IterateDirectory(dirList); ////Iterate parent directory and all its sub directories. //foreach (DirectoryInfo dir in dirList) //{ // //Get music files from the this directory. // musicFiles = dir.GetFiles(GlobalUserConfig.FileType); // //Iterate music files. // foreach (FileInfo musicFile in musicFiles) // { // try // { // //Create tag music file from music file. // tagMusicFile = TagLib.File.Create(musicFile.FullName); // artists = artist.GetArtist(tagMusicFile); // foreach (string val in artists) // { // if (!this.artistsTagValue.Contains(val)) // { // if(!IsAlreadyExistsInDB(val.Trim())) // { // this.artistsTagValue.Add(val.Trim()); // this.listOfMusicFileTagTempData.Add( // new TemplateMusicFileTag() { ArtistTagVale = val.Trim(), IsAlbum = false, IsArtist = false, IsBand = false }); // } // } // } // } // catch (Exception errMsg) // { // throw errMsg; // } // } //} }
public MusicArtist Delete(int id) { MusicArtist album = GetById(id); if (album != null) { db.Artists.Remove(album); } return(album); }
public void MusicArtistInstantiation() { var options = new MusicArtistOptions(); SetMusicArtistOptions(options); var music_artist = new MusicArtist("-1", "-1", options); AssertMusicArtist(music_artist, options); AssertMusicArtist(music_artist, music_artist.GetOptions()); }
public IEnumerable <Audio> GetInstantMixFromArtist(MusicArtist artist, User user) { var genres = user.RootFolder .GetRecursiveChildren(user, i => i is Audio) .Cast <Audio>() .Where(i => i.HasAnyArtist(artist.Name)) .SelectMany(i => i.Genres) .Concat(artist.Genres) .Distinct(StringComparer.OrdinalIgnoreCase); return(GetInstantMixFromGenres(genres, user)); }
public async Task <Music> InsertMusicAsync(Music music) { Music response = new Music(); try { music.DatePublic = DateTimeOffset.Now; List <Artist> artists = await _dbContext.Artists.ToListAsync(); List <Artist> artistMusic = (from artist in artists join artistM in music.MusicArtists on artist.Id equals artistM.ArtistId select new Artist { Id = artist.Id, NameArtist = artist.NameArtist, Country = artist.Country, Gender = artist.Gender }).ToList(); if (artistMusic.Count != 0) { music.MusicArtists = new List <MusicArtist>(); foreach (Artist art in artistMusic) { MusicArtist musicArtist = new MusicArtist(); musicArtist.Artist = art; musicArtist.Music = music; music.MusicArtists.Add(musicArtist); } await _dbContext.Musics.AddAsync(music); var save = await _dbContext.SaveChangesAsync(); if (save != 1) { response = music; } } else { response = null; } } catch { response = null; } return(response); }
//The nuget doesn't seem to have GetProviderId for artists public static string GetMusicBrainzArtistId(MusicArtist artist) { if (artist.ProviderIds == null) { return(null); } if (artist.ProviderIds.TryGetValue("MusicBrainzArtist", out string mbArtistId)) { return(mbArtistId); } return(null); }
public async Task <GetTracksResponse> GetTracks(LastfmUser user, MusicArtist artist, CancellationToken cancellationToken) { var request = new GetTracksRequest { User = user.Username, Artist = artist.Name, ApiKey = Strings.Keys.LastfmApiKey, Method = Strings.Methods.GetTracks, Limit = 1000 }; return(await Get <GetTracksRequest, GetTracksResponse>(request, cancellationToken)); }
public IEnumerable <Audio> GetInstantMixFromArtist(MusicArtist artist, User user) { var genres = user.RootFolder .GetRecursiveChildren(user, new InternalItemsQuery(user) { IncludeItemTypes = new[] { typeof(Audio).Name } }) .Cast <Audio>() .Where(i => i.HasAnyArtist(artist.Name)) .SelectMany(i => i.Genres) .Concat(artist.Genres) .Distinct(StringComparer.OrdinalIgnoreCase); return(GetInstantMixFromGenres(genres, user)); }
//The nuget doesn't seem to have GetProviderId for artists public static string GetMusicBrainzArtistId(MusicArtist artist) { if (artist.ProviderIds == null) { Plugin.Logger.Debug("No provider id: {0}", artist.Name); return(null); } if (artist.ProviderIds.TryGetValue(MetadataProviders.MusicBrainzArtist.ToString(), out var mbArtistId)) { return(mbArtistId); } Plugin.Logger.Debug("No GetMusicBrainzArtistId MBID: {0}", artist.Name); return(null); }
//The nuget doesn't seem to have GetProviderId for artists public static string GetMusicBrainzArtistId(MusicArtist artist) { string mbArtistId; if (artist.ProviderIds == null) { Plugin.Logger.Debug("No provider id: {0}", artist.Name); return(null); } if (artist.ProviderIds.TryGetValue("MusicBrainzArtist", out mbArtistId)) { return(mbArtistId); } Plugin.Logger.Debug("No MBID: {0}", artist.Name); return(null); }
public void Should_Get_All_Music() { //ARRANGE var albums = AlbumStub.Albums; var artist = ArtistStub.Artist; var musics = MusicStub.Musics; var newInfoMusic = MusicStub.UpdateMusic; using (var context = _sqlLifeFake.GetDbContext()) { AlbumService albumService = new AlbumService(context); ArtistService artistService = new ArtistService(context); MusicService musicService = new MusicService(context); var insertArtist = artistService.InsertArtistAsync(artist); albums[0].ArtistId = insertArtist.Result.Id; var albumInsert = albumService.InsertAlbumAsync(albums[0]); musics[0].AlbumId = albumInsert.Result.Id; musics[1].AlbumId = albumInsert.Result.Id; MusicArtist musicArtist = new MusicArtist { ArtistId = insertArtist.Result.Id }; musics[0].MusicArtists = new List <MusicArtist>(); musics[1].MusicArtists = new List <MusicArtist>(); musics[0].MusicArtists.Add(musicArtist); musics[1].MusicArtists.Add(musicArtist); //ACT var first = musicService.InsertMusicAsync(musics[0]); var second = musicService.InsertMusicAsync(musics[1]); var result = musicService.GetMusicsAsync(); // ASSERT result.Result.Should().HaveCount(2); } }
public static void Main(string[] args) { MusicArtist prince = new MusicArtist("Prince"); prince.AddToPlaylist("Purple Rain"); prince.AddToPlaylist("Little Red Corvette"); prince.AddToPlaylist("Kiss"); prince.AddToPlaylist("When Doves Cry"); Mediaplayer player = new Mediaplayer(); player.PlayMedia(prince); Audiobooks howto = new Audiobooks("How to Win Friends and Influence People", "Dale Carnegie"); player.PlayMedia(howto); MovieSoundtracks starWars = new MovieSoundtracks("Star Wars"); starWars.SelectTrack("Opening Credits Theme"); player.PlayMedia(starWars); }
private void btnLoadPlaylist_Click(object sender, RoutedEventArgs e) { string[] _art = XBMC.Database.GetArtists(); //ObservableCollection<MusicSong> plsong = new ObservableCollection<MusicSong>(); ObservableCollection <MusicArtist> _artistes = new ObservableCollection <MusicArtist>(); foreach (string item in _art) { //MusicSong song = new MusicSong(); ; //song = XBMC.Database.GetSongByFileName(item); //plsong.Add(song); MusicArtist art = new MusicArtist(); art.Artist = item; _artistes.Add(art); } lstPlaylist.ItemsSource = _artistes; Console.WriteLine(lstPlaylist.Items.Count.ToString()); }
/// <summary> /// Sets the item counts. /// </summary> /// <param name="artist">The artist.</param> /// <param name="userId">The user id.</param> /// <param name="allItems">All items.</param> private void SetItemCounts(MusicArtist artist, Guid?userId, IEnumerable <IHasArtist> allItems) { var name = artist.Name; var items = allItems .Where(i => i.HasArtist(name)) .ToList(); var counts = new ItemByNameCounts { TotalCount = items.Count, SongCount = items.OfType <Audio>().Count(), AlbumCount = items.OfType <MusicAlbum>().Count(), MusicVideoCount = items.OfType <MusicVideo>().Count() }; if (userId.HasValue) { artist.SetItemByNameCounts(userId.Value, counts); } }
public List <BaseItem> GetInstantMixFromArtist(MusicArtist item, User user, DtoOptions dtoOptions) { return(GetInstantMixFromGenres(item.Genres, user, dtoOptions)); }
static void AssertMusicArtist(MusicArtist musicArtist, MusicArtistOptions options) { AssertPerson(musicArtist, options); }
public MusicArtistResource(MusicArtist musicArtist) { this.musicArtist = musicArtist; }
/// <summary> /// Gets the data. /// </summary> /// <param name="artist">The artist.</param> /// <returns>Guid.</returns> private Guid GetComparisonData(MusicArtist artist) { var songs = artist.RecursiveChildren.OfType <Audio>().ToList(); return(GetComparisonData(songs)); }
private async Task <List <LastfmArtistTrack> > GetArtistTracks(LastfmUser lastfmUser, MusicArtist artist, IProgress <double> progress, CancellationToken cancellationToken, double maxProgress, double progressOffset) { var tracks = new List <LastfmArtistTrack>(); var page = 1; //Page 0 = 1 bool moreTracks; do { cancellationToken.ThrowIfCancellationRequested(); var response = await _apiClient.GetArtistTracks(lastfmUser, artist, cancellationToken, page ++).ConfigureAwait(false); if (response == null || !response.HasTracks()) { break; } tracks.AddRange(response.ArtistTracks.Tracks); moreTracks = !response.ArtistTracks.Metadata.IsLastPage(); } while (moreTracks); return(tracks); }
public MusicArtist Add(MusicArtist newArtist) { db.Add(newArtist); return(newArtist); }
public IEnumerable <Audio> GetInstantMixFromArtist(MusicArtist item, User user, DtoOptions dtoOptions) { return(GetInstantMixFromGenres(item.Genres, user, dtoOptions)); }