コード例 #1
0
        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());
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        /// <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;
                }
            }
        }
コード例 #5
0
        /// <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);
            }
        }
コード例 #6
0
        /// <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();
        }
コード例 #7
0
        /// <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);
            }
        }
コード例 #8
0
ファイル: SumDocument.cs プロジェクト: erdincay/checksum-tool
        /// <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();
        }
コード例 #9
0
ファイル: SumDocument.cs プロジェクト: erdincay/checksum-tool
 /// <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;
 }
コード例 #10
0
ファイル: MainForm.cs プロジェクト: erdincay/checksum-tool
        /// <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;
            }
        }
コード例 #11
0
 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());
 }
コード例 #12
0
 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);
 }
コード例 #13
0
 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());
 }