示例#1
0
 /// <summary>
 /// Set UI labels to start values
 /// </summary>
 /// <param name="resetSourcePath"></param>
 private void SetUIValues(ResultValues result = null, bool resetSourcePath = false)
 {
     if (resetSourcePath)
     {
         textBox_SourceRootFolder.Text = @"C:\";
     }
     if (result == null)
     {
         label_SpecialFileCount.Text = "0";
     }
     label_RowsSum.Text          = (result == null) ? "0" : $@"{Calculate.FormatNumber(result.AmountOfAllRows)} kpl";
     label_CommentedRowsSum.Text = (result == null)
         ? "0"
         : $@"{Calculate.FormatResultAndPercentage(result.AmountOfAllCommentedRows, result.AmountOfAllRows)} kaikista riveistä.";
     label_DescriptionRowsSum.Text = (result == null)
         ? "0"
         : $@"{Calculate.FormatResultAndPercentage(result.AmountOfAllMethodDescriptionRows, result.AmountOfAllCommentedRows)} kaikista kommenttiriveistä.";
     label_CommentedCodeRowsSum.Text = (result == null)
         ? "0"
         : $@"{Calculate.FormatResultAndPercentage(result.AmountOfAllCommentedCodeRows, result.AmountOfAllCommentedRows)} kaikista kommenttiriveistä.";
     label_ShortFiles.Text = (result == null)
         ? "0"
         : $"{Calculate.FormatResultAndPercentage(result.AmountOfShortFiles, result.AmountOfFiles)}";
     label_MediumFiles.Text = (result == null)
         ? "0"
         : $"{Calculate.FormatResultAndPercentage(result.AmountOfMediumFiles, result.AmountOfFiles)}";
     label_LongFiles.Text = (result == null)
         ? "0"
         : $"{Calculate.FormatResultAndPercentage(result.AmountOfLongFiles, result.AmountOfFiles)}";
     label_RowsAveragePerFile.Text = (result == null)
         ? "0"
         : $"{result.AverageAmountOfRowsInFile} kpl.";
     label_Stats.Text = (result == null || result.MostRowsFileName == "")
         ? "N/A"
         : $@"Eniten rivejä yhdessä tiedostossa: ({Calculate.FormatNumber(result.MostRows)} kpl) {result.MostRowsFileName.Remove(0, textBox_SourceRootFolder.Text.Length)}";
 }
示例#2
0
        /// <summary>
        /// Reads all the files given in parameter
        /// Calculates needed values to Result
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void ReadFiles(object sender, DoWorkEventArgs e)
        {
            object[] parameters = e.Argument as object[];
            if (parameters.Length == 0)
            {
                e.Result = null;
            }
            // Parameters
            var filePaths = (List <string>)parameters[0];
            var maximumRowsInShortFile  = 300;
            var maximumRowsInMediumFile = 700;

            if (parameters.Length >= 2)
            {
                int.TryParse(parameters[1].ToString(), out maximumRowsInShortFile);
            }
            if (parameters.Length >= 3)
            {
                int.TryParse(parameters[2].ToString(), out maximumRowsInMediumFile);
            }

            var result = new ResultValues();

            result.AmountOfFiles = filePaths.Count;
            //loop all files
            foreach (var filePath in filePaths)
            {
                if (!File.Exists(filePath))
                {
                    continue;
                }

                string[] readText           = File.ReadAllLines(filePath);
                var      amountOfRowsInFile = readText.Length;
                result.AmountOfAllRows += amountOfRowsInFile;
                // Find out the longest file
                if (amountOfRowsInFile > result.MostRows)
                {
                    result.MostRows         = amountOfRowsInFile;
                    result.MostRowsFileName = filePath;
                }

                if (amountOfRowsInFile < maximumRowsInShortFile)
                {
                    result.AmountOfShortFiles++;
                }
                else if (amountOfRowsInFile >= maximumRowsInShortFile && amountOfRowsInFile < maximumRowsInMediumFile)
                {
                    result.AmountOfMediumFiles++;
                }
                else
                {
                    result.AmountOfLongFiles++;
                }

                foreach (string s in readText)
                {
                    if (s.TrimStart().StartsWith(("//")))
                    {
                        result.AmountOfAllCommentedRows++;
                        if (s.TrimStart().StartsWith("///"))
                        {
                            result.AmountOfAllMethodDescriptionRows++;
                        }
                        if (s.TrimEnd().EndsWith(";"))
                        {
                            result.AmountOfAllCommentedCodeRows++;
                        }
                    }
                }
            }

            result.AverageAmountOfRowsInFile = Math.Round((filePaths.Count == 0) ? 0 : (decimal)result.AmountOfAllRows / (decimal)filePaths.Count, 1);
            e.Result = result;
        }