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