public void stoppingProgress() { ProgressInfo prog = new ProgressInfo(); prog.Start(); Assert.IsTrue(prog.HasActivity()); Assert.IsTrue(prog.IsRunning()); Assert.IsFalse(prog.IsStopping()); Assert.IsFalse(prog.IsReady()); prog.Stop(); Assert.IsTrue(prog.HasActivity()); Assert.IsFalse(prog.IsRunning()); Assert.IsTrue(prog.IsStopping()); Assert.IsFalse(prog.IsReady()); prog.ActivityEnded(); Assert.IsFalse(prog.HasActivity()); Assert.IsFalse(prog.IsRunning()); Assert.IsTrue(prog.IsStopping()); Assert.IsFalse(prog.IsReady()); prog.Stopped(); Assert.IsFalse(prog.HasActivity()); Assert.IsFalse(prog.IsRunning()); Assert.IsFalse(prog.IsStopping()); Assert.IsTrue(prog.IsReady()); }
public void Construct() { ProgressInfo prog = new ProgressInfo(); Assert.AreEqual(0, prog.Max); Assert.AreEqual(0, prog.Min); Assert.AreEqual(0, prog.Now); Assert.AreEqual(null, prog.Filename); Assert.AreEqual(ProgressInfo.Result.Failed, prog.Succeeded); Assert.AreEqual(false, prog.HasActivity()); }
public void Setters() { ProgressInfo prog = new ProgressInfo(); prog.Min = 10; Assert.AreEqual(10, prog.Min); prog.Max = 115; Assert.AreEqual(115, prog.Max); prog.Now = 48; Assert.AreEqual(48, prog.Now); prog.Filename = "test.cpp"; Assert.AreEqual("test.cpp", prog.Filename); prog.Succeeded = ProgressInfo.Result.Success; Assert.AreEqual(ProgressInfo.Result.Success, prog.Succeeded); }
/// <summary> /// Add folder and it´s subfolders. /// </summary> /// <param name="folder">Path to folder to add.</param> /// <param name="progressInfo">Returns information about progress.</param> void AddSubFolders(string folder, ref ProgressInfo progressInfo) { AddFolder(folder, ref progressInfo); string[] subFolders = Directory.GetDirectories(folder); for (int i = 0; i < subFolders.Length; i++) { string currentSubFolder = subFolders[i]; try { if (Directory.GetDirectories(currentSubFolder).Length > 0) AddSubFolders(currentSubFolder, ref progressInfo); else AddFolder(currentSubFolder, ref progressInfo); } catch (Exception) { //TODO: Tell user he did not get all subfolders. //Some windows hidden folders throw this exception. } if (progressInfo.IsStopping()) { progressInfo.ActivityEnded(); break; } } }
/// <summary> /// Add files in folder to items to process. /// </summary> /// <param name="folder">Path to folder to add.</param> /// <param name="progressInfo">Returns information about progress.</param> void AddFolder(string folder, ref ProgressInfo progressInfo) { DirectoryInfo info = new DirectoryInfo(folder); FileInfo[] files = info.GetFiles(); _listChanged = true; foreach (FileInfo fi in files) { CheckSumItem newItem = new CheckSumItem(fi.FullName); FileInfo fileInfo = new FileInfo(fi.FullName); newItem.Size = fileInfo.Length; _fileList.Add(newItem); } }
/// <summary> /// Add folder and it´s subfolders. /// </summary> /// <param name="folder">Path to folder to add.</param> /// <param name="progressInfo">Returns information about progress.</param> public void AddSubFolders(ref ProgressInfo progressInfo, string path) { progressInfo.DefaultSetting(); progressInfo.Start(); AddSubFolders(path, ref progressInfo); progressInfo.Complete(); }
/// <summary> /// Add file or folder (files in that folder) to list of files to /// process. /// </summary> /// <param name="path">File or folder path to add.</param> /// <param name="progressInfo">Returns information about progress.</param> public void Add(string path, ref ProgressInfo progressInfo) { DirectoryInfo info = new DirectoryInfo(path); bool isDir = ((info.Attributes & FileAttributes.Directory) != 0); if (isDir) { AddFolder(path, ref progressInfo); } else { AddFile(path); } }
/// <summary> /// Calculate checksums for all items in the list. /// </summary> /// <param name="progressInfo">Returns information about progress.</param> public void CalculateSums(ref ProgressInfo progressInfo) { progressInfo.Max = _checksumItemList.Count; Calculator sumCalculator = new Calculator(SumType); sumCalculator.Calculate(_checksumItemList.FileList, ref progressInfo); // Set list changed as even existing checksum values could change // during calculation (file in disc changed between calculations). _checksumItemList.SetChanged(); progressInfo.Complete(); }
/// <summary> /// Verify checksums for all items in the list. /// </summary> /// <param name="progressInfo">Returns information about progress.</param> /// <returns> /// true if all items were verified successfully, false if /// one or more items failed the verification. ///</returns> public bool VerifySums(ref ProgressInfo progressInfo) { progressInfo.Max = _checksumItemList.Count; Calculator sumCalculator = new Calculator(SumType); bool succeeded = sumCalculator.Verify(_checksumItemList.FileList, ref progressInfo); progressInfo.Complete(); return succeeded; }
/// <summary> /// Calculate checksums - this is the asynchronous method. /// </summary> /// <param name="progressInfo">Progress information.</param> private void DoVerifyCheckSums(ref ProgressInfo progressInfo) { bool allSucceeded = _document.VerifySums(ref progressInfo); if (allSucceeded) { progressInfo.Succeeded = ProgressInfo.Result.Success; } else { progressInfo.Succeeded = ProgressInfo.Result.PartialSuccess; } }