/// <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()); }
/// <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()); }
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; }
/// <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; }
/// <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..."; }
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."); } } }
/// <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; }
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(); }
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; }
/// <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(); }
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); } })); }
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; } } }
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); } }
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; }
/// <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; }
/// <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; }
/// <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 }); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }