public RejectSongCommandService(
     IEfRepository <Song> songRepository,
     ISongProvider songProvider,
     IEfDbContextSaveChanges contextSaveChanges)
     : base(songRepository, songProvider, contextSaveChanges)
 {
 }
예제 #2
0
        public UploadSongCommandService(
            IEfRepository <Song> songRepository,
            ISongProvider songProvider,
            IDateTimeProvider timeProvider,
            IEfDbContextSaveChanges contextSaveChanges)
        {
            if (songRepository is null)
            {
                throw new ArgumentNullException(nameof(songRepository));
            }

            if (songProvider is null)
            {
                throw new ArgumentNullException(nameof(songProvider));
            }

            if (timeProvider is null)
            {
                throw new ArgumentNullException(nameof(timeProvider));
            }

            if (contextSaveChanges is null)
            {
                throw new ArgumentNullException(nameof(contextSaveChanges));
            }

            this.songRepository     = songRepository;
            this.songProvider       = songProvider;
            this.timeProvider       = timeProvider;
            this.contextSaveChanges = contextSaveChanges;
        }
예제 #3
0
 public SearchResultsViewModel(ISongProvider songProvider)
 {
     _songProvider = songProvider;
     _songs = new ObservableCollection<Song>();
     _albums = new ObservableCollection<ArtistAlbum>();
     _artists = new ObservableCollection<ArtistAlbum>();
     _cts = new CancellationTokenSource();
     CancelSearchCommand = new DelegateCommand(() => _cts.Cancel());
 }
예제 #4
0
 public AutoPlaylistService(
     IVoteableQueue<ISongStream> queue,
     ISongProvider songProvider,
     ISongStreamPlayer streamPlayer)
 {
     _queue = queue;
     _songProvider = songProvider;
     _streamPlayer = streamPlayer;
 }
예제 #5
0
 public SongPresenter(Configuration configuration, ISongView view, IDownloadingPresenter downloadingPresenter,
                      ISongProvider songProvider)
 {
     Configuration          = configuration;
     View                   = view;
     View.Presenter         = this;
     View.AutoCloseDownload = AutoCloseDownload;
     View.Overlay           = Overlay;
     DownloadingPresenter   = downloadingPresenter;
     SongProvider           = songProvider;
 }
예제 #6
0
        static void SongQueueSample(ISongPlayer player, ISongProvider songProvider)
        {
            var queue = new VoteableQueue<Song>();
            queue.ItemAdded += (sender, eventArgs) =>
            {
                Console.WriteLine("Added song " + eventArgs.Item.Item.Name + " to queue");

                if (queue.CurrentQueue.Count() == 1)
                {
                    VoteableQueueItem<Song> head;

                    if (queue.TryPeek(out head))
                    {
                        player.Start(head.Item);
                    }
                }
            };
            player.CurrentSongChanged += (sender, eventArgs) => Console.WriteLine("Current song is " + eventArgs.NewValue.Name);
            player.CurrentSongCompleted += (sender, eventArgs) =>
            {
                VoteableQueueItem<Song> head;

                if (queue.TryDequeue(out head))
                {
                    if (queue.TryPeek(out head))
                    {
                        player.Start(head.Item);
                    }
                }
            };

            string query;

            do
            {
                Console.WriteLine("Enter query >> ");
                query = Console.ReadLine();

                if (!string.IsNullOrEmpty(query))
                {
                    songProvider
                        .GetSongs(query, CancellationToken.None)
                        .ContinueWith(resultTask =>
                        {
                            var song = resultTask.Result.FirstOrDefault();

                            if (song != null)
                            {
                                queue.Enqueue(song);
                            }
                        });
                }
            } while (string.IsNullOrEmpty(query));
        }
예제 #7
0
        public SimilarArtistsStream(
            ISongProvider songProvider,
            string artistName,
            string echoNestApiKey)
        {
            Name = "Similar";
            Description = "Artists similar to " + artistName;
            Variety = 0.5;
            Adventurousness = 0.2;

            _songProvider = songProvider;
            _artistName = artistName;
            _echoNestApiKey = echoNestApiKey;
        }
        public GetSongForPlayingQueryService(
            ISongProvider songProvider,
            IEfRepository <Song> songRepository)
        {
            if (songProvider is null)
            {
                throw new ArgumentNullException(nameof(songProvider));
            }

            if (songRepository is null)
            {
                throw new ArgumentNullException(nameof(songRepository));
            }

            this.songProvider   = songProvider;
            this.songRepository = songRepository;
        }
예제 #9
0
        public static void AddSongToQueue(Song song, ISongProvider sender)
        {
            //var song = new Song
            //{
            //    Uri = ((FullTrack)item).Uri,
            //    Source = "Spotify",
            //    Title = ((FullTrack)item).Name,
            //    Votes = 0
            //};

            try
            {
                song.AddToQueueCommand.Execute(null);
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine(e);
            }
        }
예제 #10
0
 public DownloadingPresenter(IDownloadingView view, ISongProvider songProvider) : this(songProvider)
 {
     View           = view;
     View.Presenter = this;
 }
예제 #11
0
 public MainWindowViewModel(ISongProvider songProvider, ISongPlayer songPlayer)
 {
     _songProvider = songProvider;
     _songPlayer = songPlayer;
 }
 public GroovesharkSongProviderTest()
 {
     var client = new GroovesharkClientWrapper();
     client.Connect();
     _provider = new GroovesharkSongProvider(new Lazy<IGroovesharkClient>(() => client));
 }
예제 #13
0
 public SpotifySongProviderTest()
 {
     _provider = new SpotifySongProvider(new DefaultSpotifyImageProvider());
 }
예제 #14
0
 public DownloadingPresenter(ISongProvider songProvider)
 {
     SongProvider = songProvider;
 }
예제 #15
0
 public QueryController(ISongProvider songProvider)
 {
     _songProvider = songProvider;
 }
예제 #16
0
 //Song provider and logger are available as they are registered into the conatiner in AppHost
 public SongService(ISongProvider songProvider, ILog logger)
 {
     _songProvider = songProvider;
     _logger = logger;
 }
예제 #17
0
        public CachedSongProvider(ISongProvider provider)
        {
            _provider = provider;

            SlidingExpiration = TimeSpan.FromMinutes(2);
        }