/// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="windowManager">WindowManager used to display dialogs.</param>
 /// <param name="displayName">Display name.</param>
 /// <param name="trackAPI">Last.fm API object for getting track information.</param>
 /// <param name="albumAPI">Last.fm API object for getting album information.</param>
 /// <param name="lastAuth">Last.fm authentication object.</param>
 public MediaPlayerScrobbleViewModelBase(IExtendedWindowManager windowManager, string displayName, ITrackApi trackAPI, IAlbumApi albumAPI, ILastAuth lastAuth)
     : base(windowManager, displayName)
 {
     _trackAPI = trackAPI;
     _albumAPI = albumAPI;
     _lastAuth = lastAuth;
 }
Exemple #2
0
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='lang'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <object> GetNewSpaceIdAsync(this IAlbumApi operations, string lang, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.GetNewSpaceIdWithHttpMessagesAsync(lang, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="windowManager">WindowManager used to display dialogs.</param>
 /// <param name="lastfmArtistAPI">Last.fm artist api used to search for artists.</param>
 /// <param name="lastfmAlbumAPI">Last.fm album api used to search for albums.</param>
 public DatabaseScrobbleViewModel(IExtendedWindowManager windowManager, IArtistApi lastfmArtistAPI, IAlbumApi lastfmAlbumAPI)
     : base(windowManager, "Database Scrobbler")
 {
     _lastfmArtistAPI  = lastfmArtistAPI;
     _lastfmAlbumAPI   = lastfmAlbumAPI;
     DatabaseToSearch  = Database.LastFm;
     SearchType        = SearchType.Artist;
     MaxResults        = 25;
     FetchedArtists    = new ObservableCollection <FetchedArtistViewModel>();
     FetchedReleases   = new ObservableCollection <FetchedReleaseViewModel>();
     FetchedTracks     = new ObservableCollection <FetchedTrackViewModel>();
     _artistResultView = new ArtistResultView()
     {
         DataContext = this
     };
     _releaseResultView = new ReleaseResultView()
     {
         DataContext = this
     };
     _trackResultView = new TrackResultView()
     {
         DataContext = this
     };
 }
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="windowManager">WindowManager used to display dialogs.</param>
        /// <param name="trackAPI">Last.fm API object for getting track information.</param>
        /// <param name="albumAPI">Last.fm API object for getting album information.</param>
        /// <param name="artistAPI">Last.fm API object for getting artist information.</param>
        public SpotifyScrobbleViewModel(IExtendedWindowManager windowManager, ITrackApi trackAPI, IAlbumApi albumAPI, IArtistApi artistAPI)
            : base(windowManager, "Spotify Scrobbler", trackAPI, albumAPI, artistAPI)
        {
            PercentageToScrobble   = 0.5;
            _counterTimer          = new Timer(1000);
            _counterTimer.Elapsed += CounterTimer_Elapsed;
            _refreshTimer          = new Timer(1000);
            _refreshTimer.Elapsed += RefreshTimer_Elapsed;

            if (AutoConnect)
            {
                Connect();
            }
        }
Exemple #5
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="windowManager">WindowManager used to display dialogs.</param>
        /// <param name="trackAPI">Last.fm API object for getting track information.</param>
        /// <param name="albumAPI">Last.fm API object for getting album information.</param>
        /// <param name="lastAuth">Last.fm authentication object.</param>
        public ITunesScrobbleViewModel(IExtendedWindowManager windowManager, ITrackApi trackAPI, IAlbumApi albumAPI, ILastAuth lastAuth)
            : base(windowManager, "ITunes Scrobbler", trackAPI, albumAPI, lastAuth)
        {
            PercentageToScrobble = 0.5;

            if (AutoConnect)
            {
                Connect();
            }
        }
Exemple #6
0
 public AlbumManager(IAlbumApi albumApi)
 {
     _albumApi = albumApi ?? throw new ArgumentNullException(nameof(albumApi));
 }
Exemple #7
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="windowManager">WindowManager used to display dialogs.</param>
        /// <param name="trackAPI">Last.fm API object for getting track information.</param>
        /// <param name="albumAPI">Last.fm API object for getting album information.</param>
        /// <param name="lastAuth">Last.fm authentication object.</param>
        public SpotifyScrobbleViewModel(IExtendedWindowManager windowManager, ITrackApi trackAPI, IAlbumApi albumAPI, ILastAuth lastAuth)
            : base(windowManager, "Spotify Scrobbler", trackAPI, albumAPI, lastAuth)
        {
            PercentageToScrobble   = 0.5;
            _spotify               = new SpotifyLocalAPI();
            _counterTimer          = new Timer(1000);
            _counterTimer.Elapsed += _counterTimer_Elapsed;
            _refreshTimer          = new Timer(1000);
            _refreshTimer.Elapsed += _refreshTimer_Elapsed;

            if (AutoConnect)
            {
                Connect();
            }
        }
Exemple #8
0
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='addEditAlbumCommand'>
 /// </param>
 /// <param name='lang'>
 /// </param>
 public static LMSApplicationCoreViewModelPhotoAlbumPhotoAlbumViewModel UpdateSpaceAlbum(this IAlbumApi operations, LMSApplicationCoreCommandsSpaceAddEditAlbum addEditAlbumCommand, string lang)
 {
     return(operations.UpdateSpaceAlbumAsync(addEditAlbumCommand, lang).GetAwaiter().GetResult());
 }
Exemple #9
0
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='album'>
 /// </param>
 /// <param name='lang'>
 /// </param>
 public static LMSApplicationCoreViewModelSpaceDeleteContainerViewModel DeleteSpaceAlbum(this IAlbumApi operations, object album, string lang)
 {
     return(operations.DeleteSpaceAlbumAsync(album, lang).GetAwaiter().GetResult());
 }
Exemple #10
0
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='contextId'>
 /// </param>
 /// <param name='contextTypeId'>
 /// </param>
 /// <param name='albumId'>
 /// </param>
 /// <param name='albumType'>
 /// </param>
 /// <param name='lang'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <LMSApplicationCoreViewModelPhotoAlbumPhotoAlbumViewModel> GetAlbumDetailsAsync(this IAlbumApi operations, string contextId, int contextTypeId, string albumId, int albumType, string lang, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.GetAlbumDetailsWithHttpMessagesAsync(contextId, contextTypeId, albumId, albumType, lang, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
Exemple #11
0
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='contextId'>
 /// </param>
 /// <param name='contextTypeId'>
 /// </param>
 /// <param name='albumId'>
 /// </param>
 /// <param name='albumType'>
 /// </param>
 /// <param name='lang'>
 /// </param>
 public static LMSApplicationCoreViewModelPhotoAlbumPhotoAlbumViewModel GetAlbumDetails(this IAlbumApi operations, string contextId, int contextTypeId, string albumId, int albumType, string lang)
 {
     return(operations.GetAlbumDetailsAsync(contextId, contextTypeId, albumId, albumType, lang).GetAwaiter().GetResult());
 }
Exemple #12
0
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='lang'>
 /// </param>
 public static object GetNewSpaceId(this IAlbumApi operations, string lang)
 {
     return(operations.GetNewSpaceIdAsync(lang).GetAwaiter().GetResult());
 }
Exemple #13
0
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='photo'>
 /// </param>
 /// <param name='lang'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <LMSApplicationCoreViewModelPhotoAlbumDeletePhotoViewModel> DeletePhotoAsync(this IAlbumApi operations, object photo, string lang, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.DeletePhotoWithHttpMessagesAsync(photo, lang, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
Exemple #14
0
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='photo'>
 /// </param>
 /// <param name='lang'>
 /// </param>
 public static LMSApplicationCoreViewModelPhotoAlbumDeletePhotoViewModel DeletePhoto(this IAlbumApi operations, object photo, string lang)
 {
     return(operations.DeletePhotoAsync(photo, lang).GetAwaiter().GetResult());
 }
Exemple #15
0
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='album'>
 /// </param>
 /// <param name='lang'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <LMSApplicationCoreViewModelSpaceDeleteContainerViewModel> DeleteSpaceAlbumAsync(this IAlbumApi operations, object album, string lang, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.DeleteSpaceAlbumWithHttpMessagesAsync(album, lang, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
Exemple #16
0
 public HomeController(IAlbumApi albumApi)
 {
     _albumApi = albumApi;
 }
Exemple #17
0
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='addEditAlbumCommand'>
 /// </param>
 /// <param name='lang'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <LMSApplicationCoreViewModelPhotoAlbumPhotoAlbumViewModel> AddSpaceAlbumAsync(this IAlbumApi operations, LMSApplicationCoreCommandsSpaceAddEditAlbum addEditAlbumCommand, string lang, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.AddSpaceAlbumWithHttpMessagesAsync(addEditAlbumCommand, lang, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
Exemple #18
0
 public AlbumApi(IAlbumApi api)
 {
     _api = api;
 }