/// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="windowManager">WindowManager used to display dialogs.</param>
 /// <param name="userAPI">Last.fm user api used to fetch top artists and albums.</param>
 /// <param name="fileOperator">FileOperator used to write to disk.</param>
 public CSVDownloaderViewModel(IExtendedWindowManager windowManager, IUserApi userAPI, IFileOperator fileOperator)
     : base("CSV Downloader")
 {
     _windowManager = windowManager;
     _userAPI       = userAPI;
     _fileOperator  = fileOperator;
 }
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="windowManager">WindowManager used to display dialogs.</param>
 /// <param name="localFileFactory">Factory used to create <see cref="ILocalFile"/>s.</param>
 /// <param name="fileOperator">FileOperator used to write to disk.</param>
 public FileScrobbleViewModel(IExtendedWindowManager windowManager, ILocalFileFactory localFileFactory, IFileOperator fileOperator)
     : base(windowManager, "File Scrobbler")
 {
     Scrobbles         = new ObservableCollection <LoadedFileViewModel>();
     _localFileFactory = localFileFactory;
     _fileOperator     = fileOperator;
 }
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="windowManager">WindowManager used to display dialogs.</param>
 /// <param name="localFileFactory">Factory used to create <see cref="ILocalFile"/>s.</param>
 /// <param name="fileOperator">FileOperator used to write to disk.</param>
 public FileScrobbleViewModel(IExtendedWindowManager windowManager, ILocalFileFactory localFileFactory, IFileOperator fileOperator)
     : base(windowManager, "File Scrobbler")
 {
     Scrobbles         = new ObservableCollection <LoadedFileViewModel>();
     _localFileFactory = localFileFactory ?? throw new ArgumentNullException(nameof(localFileFactory));
     _fileOperator     = fileOperator ?? throw new ArgumentNullException(nameof(fileOperator));
     AddFilesCommand   = new DelegateCommand((o) => AddFiles().Forget());
 }
Пример #4
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="windowManager">WindowManager used to display dialogs.</param>
 /// <param name="userAPI">Last.fm user api used to fetch top artists and albums.</param>
 /// <param name="fileOperator">FileOperator used to write to disk.</param>
 public CSVDownloaderViewModel(IExtendedWindowManager windowManager, IUserApi userAPI, IFileOperator fileOperator)
     : base("CSV Downloader")
 {
     _windowManager  = windowManager ?? throw new ArgumentNullException(nameof(windowManager));
     _userAPI        = userAPI ?? throw new ArgumentNullException(nameof(userAPI));
     _fileOperator   = fileOperator ?? throw new ArgumentNullException(nameof(fileOperator));
     DownloadCommand = new DelegateCommand((o) => Download().Forget());
 }
Пример #5
0
 public void Init()
 {
     fileSystemMock = new Mock <IFileSystem>(MockBehavior.Strict);
     fileMock       = new Mock <IFile>(MockBehavior.Strict);
     directoryMock  = new Mock <IDirectory>(MockBehavior.Strict);
     fileSystemMock.Setup(f => f.File).Returns(fileMock.Object);
     fileSystemMock.Setup(f => f.Directory).Returns(directoryMock.Object);
     fileOperator = new PhysicalFileOperator(fileSystemMock.Object);
 }
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="windowManager">WindowManager used to display dialogs.</param>
 /// <param name="parserFactory">The factory used to create <see cref="ITextFieldParser"/>.</param>
 /// <param name="fileOperator">FileOperator used to write to disk.</param>
 public CSVScrobbleViewModel(IExtendedWindowManager windowManager, ITextFieldParserFactory parserFactory, IFileOperator fileOperator)
     : base(windowManager, "CSV Scrobbler")
 {
     _parserFactory = parserFactory;
     _fileOperator  = fileOperator;
     Scrobbles      = new ObservableCollection <ParsedCSVScrobbleViewModel>();
     Duration       = 1;
     ScrobbleMode   = CSVScrobbleMode.ImportMode;
 }
Пример #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DiffOperation"/> class.
 /// </summary>
 /// <param name="dataProvider">the data provider.</param>
 /// <param name="diffProxy">the diff command proxy.</param>
 /// <param name="logger">The logger factory.</param>
 public DiffOperation(
     IDataProvider dataProvider,
     IDiffProxy diffProxy,
     ILogger <DiffOperation> logger)
 {
     this.dataProvider = dataProvider;
     this.diffProxy    = diffProxy;
     this.fileOperator = this.dataProvider.FileOperator;
     this.logger       = logger;
 }
Пример #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="LocalDataProvider"/> class.
 /// </summary>
 /// <param name="fileOperator">The file operator.</param>
 /// <param name="repoPath">repo path.</param>
 public LocalDataProvider(IFileOperator fileOperator, string repoPath)
 {
     this.fileOperator = fileOperator;
     if (string.IsNullOrWhiteSpace(repoPath))
     {
         this.repoPath = fileOperator.CurrentDirectory;
     }
     else
     {
         this.repoPath = repoPath;
     }
 }
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="windowManager">WindowManager used to display dialogs.</param>
 /// <param name="client">Factory for creating <see cref="ILastFMClient"/>s.</param>
 /// <param name="scrobblerFactory">Factory for creating <see cref="IAuthScrobbler"/>s.</param>
 /// <param name="localFileFactory">Factory for creating <see cref="Scrobbling.Data.ILocalFile"/>s.</param>
 /// <param name="fileOperator">FileOperator for interfacing with the hard disk.</param>
 /// <param name="directoryOperator">DirectoryOperator for operating with directories.</param>
 /// <param name="serializer">Serializer for <see cref="User"/>s.</param>
 /// <param name="logger">Logger used to log status messages.</param>
 /// <param name="gitHubClient">GitHub client to check for updates.</param>
 /// <param name="processManager">ProcessManager for working with processor functions.</param>
 public MainViewModel(IExtendedWindowManager windowManager, ILastFMClient client, IScrobblerFactory scrobblerFactory, ILocalFileFactory localFileFactory,
                      IFileOperator fileOperator, IDirectoryOperator directoryOperator, ISerializer serializer, ILogger logger, IGitHubClient gitHubClient, IProcessManager processManager)
 {
     _windowManager    = windowManager ?? throw new ArgumentNullException(nameof(windowManager));
     _client           = client ?? throw new ArgumentNullException(nameof(client));
     _scrobblerFactory = scrobblerFactory ?? throw new ArgumentNullException(nameof(scrobblerFactory));
     _fileOperator     = fileOperator ?? throw new ArgumentNullException(nameof(fileOperator));
     _logger           = logger;
     SetupViewModels(localFileFactory, directoryOperator, serializer, gitHubClient, processManager);
     TitleString   = "Last.fm Scrubbler WPF Beta " + Assembly.GetExecutingAssembly().GetName().Version;
     CurrentStatus = "Waiting to scrobble...";
 }
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="windowManager">WindowManager used to display dialogs.</param>
 /// <param name="clientFactory">Factory for creating <see cref="ILastFMClient"/>s.</param>
 /// <param name="scrobblerFactory">Factory for creating <see cref="IAuthScrobbler"/>s.</param>
 /// <param name="localFileFactory">Factory for creating <see cref="ILocalFile"/>s.</param>
 /// <param name="fileOperator">FileOperator for interfacing with the hard disk.</param>
 /// <param name="directoryOperator">DirectoryOperator for operating with directories.</param>
 /// <param name="userSerializer">Serializer for <see cref="User"/>s.</param>
 public MainViewModel(IExtendedWindowManager windowManager, ILastFMClientFactory clientFactory, IScrobblerFactory scrobblerFactory, ILocalFileFactory localFileFactory,
                      IFileOperator fileOperator, IDirectoryOperator directoryOperator, ISerializer <User> userSerializer)
 {
     _windowManager       = windowManager;
     _lastFMClientFactory = clientFactory;
     _scrobblerFactory    = scrobblerFactory;
     _fileOperator        = fileOperator;
     TitleString          = "Last.fm Scrubbler WPF " + Assembly.GetExecutingAssembly().GetName().Version;
     _client = _lastFMClientFactory.CreateClient(APIKEY, APISECRET);
     SetupViewModels(localFileFactory, directoryOperator, userSerializer);
     CurrentStatus = "Waiting to scrobble...";
 }
Пример #11
0
 public static void BeginScan(IFileOperator ifo, string rootPath)
 {
     if ((ifo != null) && (rootPath != null))
     {
         string fullPath = Path.GetFullPath(rootPath);
         if (Directory.Exists(fullPath))
         {
             ScanDirectory(ifo, fullPath, "");                                            // This path is a directory
         }
         else
         {
             Console.WriteLine(fullPath + " is not a valid directory.");
         }
     }
 }
Пример #12
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RemoteOperation"/> class.
 /// </summary>
 /// <param name="localDataProvider">local data provider.</param>
 /// <param name="localCommitOperation">local commit operation.</param>
 /// <param name="remoteDataProvider">remote data provider.</param>
 /// <param name="remoteCommitOperation">remote commit operation.</param>
 /// <param name="logger">The logger.</param>
 public RemoteOperation(
     IDataProvider localDataProvider,
     ICommitOperation localCommitOperation,
     IDataProvider remoteDataProvider,
     ICommitOperation remoteCommitOperation,
     ILogger <RemoteOperation> logger)
 {
     this.localDataProvider     = localDataProvider;
     this.localCommitOperation  = localCommitOperation;
     this.remoteDataProvider    = remoteDataProvider;
     this.remoteCommitOperation = remoteCommitOperation;
     this.localFileOperator     = this.localDataProvider.FileOperator;
     this.remoteFileOperator    = this.remoteDataProvider.FileOperator;
     this.logger = logger;
 }
Пример #13
0
 private void newToolStripMenuItem_Click(object sender, EventArgs e)
 {
     //if (isUpdate)
     //{
     //    if(MessageBox.Show("是否保存文件") == DialogResult.OK)
     //    {
     //        richTextBox.SaveFile(file.Location, file.RTBType);
     //    }
     //}
     isUpdate = false;
     richTextBox.Clear();
     richTextBox.ClearUndo();
     file      = null;
     this.Text = "New File";
 }
        /// <summary>
        /// Constructor.
        /// Deserializes the users.
        /// </summary>
        /// <param name="windowManager">WindowManager used to display dialogs.</param>
        /// <param name="lastAuth">Last.fm authentication object.</param>
        /// <param name="fileOperator">FileOperator used to write to disk.</param>
        /// <param name="directoryOperator">DirectoryOperator used to check and create directories.</param>
        /// <param name="userSerializer">Serializer used to serialize <see cref="User"/>.</param>
        public UserViewModel(IExtendedWindowManager windowManager, ILastAuth lastAuth, IFileOperator fileOperator, IDirectoryOperator directoryOperator, ISerializer <User> userSerializer)
        {
            _windowManager     = windowManager;
            _lastAuth          = lastAuth;
            _fileOperator      = fileOperator;
            _directoryOperator = directoryOperator;
            _userSerializer    = userSerializer;
            AvailableUsers     = new ObservableCollection <User>();

            if (!_directoryOperator.Exists(USERSFOLDER))
            {
                _directoryOperator.CreateDirectory(USERSFOLDER);
            }

            DeserializeUsers();
        }
Пример #15
0
 static Program()
 {
     FileSystem        = new FileSystem();
     FileOperator      = new PhysicalFileOperator(FileSystem);
     DataProvider      = new LocalDataProvider(FileOperator);
     Diff              = new DiffOperation(DataProvider, new DiffProxy());
     TreeOperation     = new TreeOperation(DataProvider);
     CommitOperation   = new CommitOperation(DataProvider, TreeOperation);
     TagOperation      = new TagOperation(DataProvider);
     ResetOperation    = new ResetOperation(DataProvider);
     MergeOperation    = new MergeOperation(DataProvider, CommitOperation, TreeOperation, Diff);
     InitOperation     = new DefaultInitOperation(DataProvider);
     BranchOperation   = new BranchOperation(DataProvider);
     CheckoutOperation = new CheckoutOperation(DataProvider, TreeOperation, CommitOperation, BranchOperation);
     AddOperation      = new AddOperation(DataProvider);
     OidConverter      = DataProvider.GetOid;
 }
Пример #16
0
        /// <summary>
        /// Constructor.
        /// Deserializes the users.
        /// </summary>
        /// <param name="windowManager">WindowManager used to display dialogs.</param>
        /// <param name="lastAuth">Last.fm authentication object.</param>
        /// <param name="userApi">Api to get recent scrobbles with.</param>
        /// <param name="fileOperator">FileOperator used to write to disk.</param>
        /// <param name="directoryOperator">DirectoryOperator used to check and create directories.</param>
        /// <param name="userSerializer">Serializer used to serialize <see cref="User"/>.</param>
        public UserViewModel(IExtendedWindowManager windowManager, ILastAuth lastAuth, IUserApi userApi, IFileOperator fileOperator, IDirectoryOperator directoryOperator, ISerializer userSerializer)
        {
            _windowManager     = windowManager;
            _lastAuth          = lastAuth;
            _userApi           = userApi ?? throw new ArgumentNullException(nameof(userApi));
            _fileOperator      = fileOperator;
            _directoryOperator = directoryOperator;
            _userSerializer    = userSerializer;
            AvailableUsers     = new ObservableCollection <User>();

            if (!_directoryOperator.Exists(USERSFOLDER))
            {
                _directoryOperator.CreateDirectory(USERSFOLDER);
            }

            DeserializeUsers();
            LoadLastUser();
        }
Пример #17
0
        private async void loadFileAsync(String location, SupportFormat format)
        {
            string handler = "KLEditor.Utils." + TitleCase(format.ToString()) + "Handler";

            Type type = Type.GetType(handler);

            var con = type.GetConstructor(new Type[] { typeof(String) });

            file = con.Invoke(new Object[] { location }) as IFileOperator;
            var stream = await file.GetInputStream();

            richTextBox.Invoke(new Action(() =>
            {
                using (stream)
                {
                    richTextBox.LoadFile(stream, file.RTBType);
                }
            }));
        }
Пример #18
0
        private static void ActBasedOnTag(string[] args, IFileOperator fileOp)
        {
            string inputText = null;

            for (int i = 0; i < args.Length - 1; i++)
            {
                switch (args[i])
                {
                case READ_TAG:
                {
                    Console.WriteLine($"File Text : {fileOp.ReadFile(args[i + 1])}");
                    break;
                }

                case COUNT_TAG:
                {
                    Console.WriteLine($"Characters in file : {fileOp.GetNumberOfCharacters(args[i+1])}");
                    break;
                }

                case TEXT_TAG:
                {
                    inputText = args[i + 1];
                    break;
                }

                case WRITE_TAG:
                {
                    fileOp.WriteToFile(args[i + 1], inputText);
                    break;
                }

                default:
                    break;
                }
            }
        }
Пример #19
0
        public static void ScanDirectory(IFileOperator ifo, string rootPath, string relPathDir)
        {
            string currDir = Path.Combine(rootPath, relPathDir);

            //string currDir = String.Concat(rootPath, relPathDir);

            // Process the list of files found in the directory
            string [] fileEntries = Directory.GetFiles(currDir);
            foreach (string fileName in fileEntries)
            {
                ifo.ProcessFile(rootPath, relPathDir, Path.GetFileName(fileName));
            }

            // Recurse into subdirectories of this directory
            string [] subdirEntries = Directory.GetDirectories(currDir);
            foreach (string subdir in subdirEntries)
            {
                // Get the end directory and tag it onto relPathDir
                string tempRelPathDir = Path.Combine(relPathDir, subdir.Substring(currDir.Length + 1));

                ifo.ProcessDirectory(rootPath, tempRelPathDir);
                ScanDirectory(ifo, rootPath, tempRelPathDir);
            }
        }
Пример #20
0
        public Form1(IEncryptor encryptor, IFileOperator fileOperator)
        {
            InitializeComponent();

            this._encryptor    = encryptor;
            this._fileOperator = fileOperator;

            this.cb_encoding.DataSource = new List <Encoding>()
            {
                Encoding.Default,
                Encoding.UTF8,
                Encoding.ASCII,
                Encoding.Unicode,
                Encoding.BigEndianUnicode
            };
            this.cb_encoding.DisplayMember = nameof(Encoding.EncodingName);

            this.bt_encrypt.Enabled = false;
            this.bt_decrypt.Enabled = false;

            this._searchNavigator = new SearchNavigator();

            this.ProcessCommandArgs(Environment.GetCommandLineArgs());
        }
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="windowManager">WindowManager used to display dialogs.</param>
 /// <param name="localFileFactory">Factory used to create <see cref="Data.ILocalFile"/>s.</param>
 /// <param name="fileOperator">FileOperator used to interface with files.</param>
 /// <param name="lastFMClient">Last.fm client.</param>
 /// <param name="discogsClient">Client used to interact with Discogs.com</param>
 /// <param name="fileParserFactory">Factory for creating <see cref="IFileParser"/></param>
 public ScrobblerViewModel(IExtendedWindowManager windowManager, ILocalFileFactory localFileFactory, IFileOperator fileOperator, ILastFMClient lastFMClient,
                           IDiscogsDataBaseClient discogsClient, IFileParserFactory fileParserFactory)
 {
     DisplayName = "Scrobbler";
     CreateViewModels(windowManager, localFileFactory, fileOperator, lastFMClient, discogsClient, fileParserFactory);
 }
 public RenameFileCommand(IFileOperator receiver, string oldName, string newName)
 {
     m_Receiver = receiver;
     m_OldName = oldName;
     m_NewName = newName;
 }
Пример #23
0
 /// <summary>
 /// Initializes a new instance of the <see cref="LocalDataProvider"/> class.
 /// <param name="fileOperator">The file operator.</param>
 /// </summary>
 internal LocalDataProvider(IFileOperator fileOperator)
     : this(fileOperator, string.Empty)
 {
     this.fileOperator = fileOperator;
 }
 public CreateFileCommand(IFileOperator receiver, string fileName)
 {
     m_Receiver = receiver;
     m_FileName = fileName;
 }
Пример #25
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AddOperation"/> class.
 /// </summary>
 /// <param name="dataProvider">The data provider.</param>
 /// <param name="logger">The logger.</param>
 public AddOperation(IDataProvider dataProvider, ILogger <AddOperation> logger)
 {
     this.dataProvider = dataProvider;
     this.fileOperator = this.dataProvider.FileOperator;
     this.logger       = logger;
 }
Пример #26
0
        /// <summary>
        /// Creates the ViewModels.
        /// </summary>
        /// <param name="windowManager">WindowManager used to display dialogs.</param>
        /// <param name="userAPI">Last.fm user API.</param>
        /// <param name="fileOperator">FileOperator used to interface with files.</param>
        private TabViewModel[] CreateViewModels(IExtendedWindowManager windowManager, IUserApi userAPI, IFileOperator fileOperator)
        {
            var pasteYourTasteVM = new PasteYourTasteViewModel(userAPI);

            pasteYourTasteVM.StatusUpdated += VM_StatusUpdated;;
            var csvDownloaderVM = new CSVDownloaderViewModel(windowManager, userAPI, fileOperator);

            csvDownloaderVM.StatusUpdated += VM_StatusUpdated;
            var collageCreatorVM = new CollageCreatorViewModel(windowManager, userAPI);

            collageCreatorVM.StatusUpdated += VM_StatusUpdated;
            var milestoneCheckerVM = new MilestoneCheckerViewModel(userAPI);

            milestoneCheckerVM.StatusUpdated += VM_StatusUpdated;

            return(new TabViewModel[] { pasteYourTasteVM, csvDownloaderVM, collageCreatorVM, milestoneCheckerVM });
        }
Пример #27
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="windowManager">WindowManager used to display dialogs.</param>
 /// <param name="localFileFactory">Factory used to create <see cref="Scrobbling.Data.ILocalFile"/>s.</param>
 /// <param name="fileOperator">FileOperator used to interface with files.</param>
 /// <param name="lastFMClient">Last.fm client.</param>
 public ScrobblerViewModel(IExtendedWindowManager windowManager, ILocalFileFactory localFileFactory, IFileOperator fileOperator, ILastFMClient lastFMClient)
 {
     DisplayName = "Scrobbler";
     CreateViewModels(windowManager, localFileFactory, fileOperator, lastFMClient);
 }
Пример #28
0
 public CreateFileCommand(IFileOperator receiver, string fileName)
 {
     m_Receiver = receiver;
     m_FileName = fileName;
 }
Пример #29
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="windowManager">WindowManager used to display dialogs.</param>
 /// <param name="userAPI">Last.fm user API.</param>
 /// <param name="fileOperator">FileOperator used to interface with files.</param>
 public ExtraFunctionsViewModel(IExtendedWindowManager windowManager, IUserApi userAPI, IFileOperator fileOperator)
 {
     DisplayName = "Extra Functions";
     CreateViewModels(windowManager, userAPI, fileOperator);
 }
Пример #30
0
        /// <summary>
        /// Creates the ViewModels.
        /// </summary>
        /// <param name="windowManager">WindowManager used to display dialogs.</param>
        /// <param name="userAPI">Last.fm user API.</param>
        /// <param name="fileOperator">FileOperator used to interface with files.</param>
        private void CreateViewModels(IExtendedWindowManager windowManager, IUserApi userAPI, IFileOperator fileOperator)
        {
            var pasteYourTasteVM = new PasteYourTasteViewModel(userAPI);

            pasteYourTasteVM.StatusUpdated += VM_StatusUpdated;;
            var csvDownloaderVM = new CSVDownloaderViewModel(windowManager, userAPI, fileOperator);

            csvDownloaderVM.StatusUpdated += VM_StatusUpdated;
            var collageCreatorVM = new CollageCreatorViewModel(windowManager, userAPI);

            collageCreatorVM.StatusUpdated += VM_StatusUpdated;
            var milestoneCheckerVM = new MilestoneCheckerViewModel(userAPI);

            milestoneCheckerVM.StatusUpdated += VM_StatusUpdated;

            ActivateItem(pasteYourTasteVM);
            ActivateItem(csvDownloaderVM);
            ActivateItem(collageCreatorVM);
            ActivateItem(milestoneCheckerVM);

            // should be selected
            ActivateItem(pasteYourTasteVM);
        }
Пример #31
0
        /// <summary>
        /// Creates the ViewModels.
        /// </summary>
        /// <param name="windowManager">WindowManager used to display dialogs.</param>
        /// <param name="localFileFactory">Factory used to create <see cref="Scrobbling.Data.ILocalFile"/>s.</param>
        /// <param name="fileOperator">FileOperator used to interface with files.</param>
        /// <param name="lastFMClient">Last.fm client.</param>
        private void CreateViewModels(IExtendedWindowManager windowManager, ILocalFileFactory localFileFactory, IFileOperator fileOperator, ILastFMClient lastFMClient)
        {
            var manualScrobbleViewModel = new ManualScrobbleViewModel(windowManager);

            manualScrobbleViewModel.StatusUpdated += Scrobbler_StatusUpdated;
            var friendScrobbleViewModel = new FriendScrobbleViewModel(windowManager, lastFMClient.User);

            friendScrobbleViewModel.StatusUpdated += Scrobbler_StatusUpdated;
            var databaseScrobbleViewModel = new DatabaseScrobbleViewModel(windowManager, lastFMClient.Artist, lastFMClient.Album);

            databaseScrobbleViewModel.StatusUpdated += Scrobbler_StatusUpdated;
            var csvScrobbleViewModel = new CSVScrobbleViewModel(windowManager, new CSVTextFieldParserFactory(), fileOperator);

            csvScrobbleViewModel.StatusUpdated += Scrobbler_StatusUpdated;
            var fileScrobbleViewModel = new FileScrobbleViewModel(windowManager, localFileFactory, fileOperator);

            fileScrobbleViewModel.StatusUpdated += Scrobbler_StatusUpdated;
            var mediaPlayerDatabaseScrobbleViewModel = new MediaPlayerDatabaseScrobbleViewModel(windowManager);

            mediaPlayerDatabaseScrobbleViewModel.StatusUpdated += Scrobbler_StatusUpdated;
            var iTunesScrobbleVM = new ITunesScrobbleViewModel(windowManager, lastFMClient.Track, lastFMClient.Album, lastFMClient.Auth);

            iTunesScrobbleVM.StatusUpdated += Scrobbler_StatusUpdated;
            // todo: put back in once local api is working again
            //var spotifyScrobbleVM = new SpotifyScrobbleViewModel(windowManager, lastFMClient.Track, lastFMClient.Album, lastFMClient.Auth);
            //spotifyScrobbleVM.StatusUpdated += Scrobbler_StatusUpdated;
            var setlistFMScrobbleVM = new SetlistFMScrobbleViewModel(windowManager, lastFMClient.Artist);

            setlistFMScrobbleVM.StatusUpdated += Scrobbler_StatusUpdated;
            var cacheScrobblerVM = new CacheScrobblerViewModel(windowManager);

            cacheScrobblerVM.StatusUpdated += Scrobbler_StatusUpdated;

            ActivateItem(manualScrobbleViewModel);
            ActivateItem(friendScrobbleViewModel);
            ActivateItem(databaseScrobbleViewModel);
            ActivateItem(csvScrobbleViewModel);
            ActivateItem(fileScrobbleViewModel);
            ActivateItem(mediaPlayerDatabaseScrobbleViewModel);
            ActivateItem(iTunesScrobbleVM);
            //ActivateItem(spotifyScrobbleVM);
            ActivateItem(setlistFMScrobbleVM);
            ActivateItem(cacheScrobblerVM);

            // this one should be selected
            ActivateItem(manualScrobbleViewModel);
        }
Пример #32
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="windowManager">WindowManager used to display dialogs.</param>
 /// <param name="userAPI">Last.fm user API.</param>
 /// <param name="fileOperator">FileOperator used to interface with files.</param>
 public ExtraFunctionsViewModel(IExtendedWindowManager windowManager, IUserApi userAPI, IFileOperator fileOperator)
     : base("Extra Functions")
 {
     ExtraFunctions = CreateViewModels(windowManager, userAPI, fileOperator);
 }