public bool ProcessDownload(Anime anime, bool useAltName) { string usedName = useAltName ? anime.AltName : anime.Name; usedName = FolderChecker.GetValidFolderPath(usedName); bool result = false; Directory.CreateDirectory(settings.DestinationFolder + usedName + @"\watched"); string filePath = settings.DownloadFolder + GetTorrentFileName(usedName, anime.CurrentEpisode, settings.Quality); if (System.Threading.SpinWait.SpinUntil(() => File.Exists(filePath), fileTimeOut)) { ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.CreateNoWindow = true; startInfo.UseShellExecute = false; startInfo.FileName = settings.QBitTorrentPath; startInfo.WindowStyle = ProcessWindowStyle.Hidden; startInfo.Arguments = String.Format("\"{0}\" --save-path=\"{1}{2}\" --skip-dialog=true", filePath, settings.DestinationFolder, usedName); Process.Start(startInfo).WaitForExit(); result = true; } else { Console.WriteLine("ERROR: could not find file: " + filePath); } return(result); }
/// <summary> /// Проверить символ перевода строки в папке. /// </summary> /// <param name="folderName">Имя папки.</param> /// <param name="filter">Фильтр по именам файлов.</param> /// <returns>Представление с результатами проверки.</returns> public ActionResult CheckFolder(string folderName, string filter) { try { var folderChecker = new FolderChecker(folderName, filter); var checkResults = folderChecker.CheckFolder(); return(this.View(checkResults)); } catch (Exception e) { return(this.View("CheckFolderError", (object)e.Message)); } }
public void LoadViewModel_OnSelectClicked_ReceivesStringOfSelectedFile() { //Arrange FolderManager manager = Substitute.For <FolderManager>(); DataProvider dataProvider = Substitute.For <DataProvider>(); FolderChecker folderChecker = Substitute.For <FolderChecker>(); FileIO fileIO = Substitute.For <FileIO>(); LoadViewModel viewModel = new LoadViewModel(dataProvider, folderChecker, manager, fileIO, Factories.GetMainWindowViewModelStub()); //Act viewModel.SelectClickCommand.Execute(this); //Assert Assert.AreEqual("return", manager.LastSelected); }
public void LoadViewModel_OnSelectClicked_CallsFolderSelector() { //Arrange FolderManager manager = Substitute.For <FolderManager>(); DataProvider dataProvider = Substitute.For <DataProvider>(); FolderChecker folderChecker = Substitute.For <FolderChecker>(); FileIO fileIO = Substitute.For <FileIO>(); LoadViewModel viewModel = new LoadViewModel(dataProvider, folderChecker, manager, fileIO, Factories.GetMainWindowViewModelStub()); //Act viewModel.SelectClickCommand.Execute(this); //Assert manager.Received().SelectFolder(); }
public void LoadViewModel_OnSelectClickedError_ReceivesSelectorError() { //Arrange FolderManager manager = Substitute.For <FolderManager>(); DataProvider dataProvider = Substitute.For <DataProvider>(); FolderChecker folderChecker = Substitute.For <FolderChecker>(); FileIO fileIO = Substitute.For <FileIO>(); LoadViewModel viewModel = new LoadViewModel(dataProvider, folderChecker, manager, fileIO, Factories.GetMainWindowViewModelStub()); //Act viewModel.SelectClickCommand.Execute(this); manager.ThrowError = true; viewModel.SelectClickCommand.Execute(this); //Assert Assert.AreEqual("", viewModel.PathText); }