protected void CalculateReability(object sender, EventArgs e)
        {
            string  text    = HttpUtility.HtmlEncode(txtInput.Text);
            Metrics metrics = MetricsCalculator.Calculate(text);

            txtSentencesWords.Text   = metrics.SentenceCount + ", " + metrics.WordCount;
            txtWordsPerSentence.Text = String.Format("{0:0.00}", metrics.WordsPerSentence);

            txtPercentProperModifiers.Text =
                String.Format("{0:0.00}  max expectable ({1:0.00}), ", metrics.ProperModiferPercent
                              , metrics.ProperModifierMaximum);

            txtComplexNps.Text =
                String.Format("{0:0.00}  max expectable ({1:0.00})", metrics.ComplexNounPhrasePercent,
                              metrics.ComplexNoundPhraseMaximum);

            txtPercentFunctionWords.Text =
                String.Format("{0:0.00}  max expectable ({1:0.00})", metrics.FunctionWordPercent, metrics.FunctionWordMaximum);

            txtCoordinatingWords.Text =
                String.Format("{0:0.00}  max expectable ({1:0.00})", metrics.CoordinatingPercent, metrics.CoordinatingMaximum);
        }
        public async Task VerifyResults(IEnumerable <FileUploadJob> results, Action <decimal?, decimal, decimal?> verificationAction)
        {
            var  resultsList      = results.ToList();
            var  ukprnList        = resultsList.Select(r => r.Ukprn).ToList();
            byte collectionPeriod = (byte)resultsList.FirstOrDefault().PeriodNumber;

            var groupedResults = resultsList.GroupBy(g => g.CollectionYear);

            foreach (var groupedResult in groupedResults)
            {
                short academicYear = (short)groupedResult.Key;

                var dasPaymentsData = await ExtractPaymentsData(results.Min(r => r.DateTimeSubmittedUtc.Value), academicYear, collectionPeriod, ukprnList);

                var dcEarningsYtd = await ExtractDataStoreData(academicYear, collectionPeriod, ukprnList);

                MetricsCalculator metricsCalculator = new MetricsCalculator(dasPaymentsData, dcEarningsYtd);

                var totalDcEarningsYtd = metricsCalculator.DcValues.Total;
                var dasEarningsYtd     = metricsCalculator.PaymentsValues.DasEarnings;


                var settings = await submissionService.ReadSettingsFile();

                decimal tolerance = settings.Tolerance;

                decimal?actualPercentage = null;
                if (dasEarningsYtd != 0)
                {
                    actualPercentage = metricsCalculator.NotAccountedForRequiredPayments / dasEarningsYtd * 100;
                }

                await SaveCsv(new CsvGeneration(metricsCalculator).BuildCsvString(), academicYear, collectionPeriod);

                var earningsDifference = totalDcEarningsYtd - dasEarningsYtd;

                verificationAction.Invoke(actualPercentage, tolerance, Decimal.Round(earningsDifference, 2));
            }
        }
        private int ProcessDirectory(DirectoryInfo directoryInfo, int fileCount, ref int rowCount, StringBuilder sb, int theCount)
        {
            if (directoryInfo.FullName.Contains("_svn") || directoryInfo.FullName.Contains(".svn"))
            {
                return(fileCount);
            }
            //string query = search.Text;

            DirectoryInfo[] subDirectories = directoryInfo.GetDirectories();
            foreach (DirectoryInfo subDirectory in subDirectories)
            {
                //Recursion going on here...
                fileCount += ProcessDirectory(subDirectory, fileCount, ref rowCount, sb, theCount);
            }

            FileInfo[] fileInfos = directoryInfo.GetFiles();
            foreach (FileInfo file in fileInfos)
            {
                if ((file.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
                {
                    continue;
                }
                if (file.FullName.Contains("_svn") || file.FullName.Contains(".svn"))
                {
                    continue;
                }

                fileCount++;
                using (StreamReader reader = file.OpenText())
                {
                    string row = reader.ReadToEnd();

                    if (row == null)
                    {
                        continue;
                    }

                    sb.Append("<tr><td>");
                    sb.Append("<a href=\"DisplayText.aspx?file=");
                    string[] splitOn = new[] { "corpus" };
                    sb.Append(file.FullName.Split(splitOn, StringSplitOptions.RemoveEmptyEntries)[1]);
                    sb.Append("\">");
                    sb.Append(CorpusUtils.ExtractTitle(file.Name));
                    sb.Append("</a></td><td>");
                    sb.Append(CorpusUtils.ExtractAuthor(file.DirectoryName));
                    sb.Append("</td>");

                    //metrics

                    Metrics metrics = MetricsCalculator.Calculate(row);
                    sb.Append("<td>");
                    sb.Append(string.Format("{0:0.0}", metrics.ComplexNounPhrasePercent));
                    sb.Append("</td><td>");
                    sb.Append(string.Format("{0:0.0}", metrics.CoordinatingPercent));
                    sb.Append("</td><td>");
                    sb.Append(string.Format("{0:0.0}", metrics.FunctionWordPercent));
                    sb.Append("</td><td>");
                    sb.Append(string.Format("{0:0.0}", metrics.ProperModiferPercent));
                    sb.Append("</td><td>");
                    sb.Append(string.Format("{0:0.0}", metrics.WordsPerSentence));
                    sb.Append("</td><td>");

                    double composite =
                        (metrics.WordsPerSentence / 9.5
                         +
                         metrics.ProperModiferPercent / .5
                         +
                         metrics.FunctionWordPercent / 2.5
                         +
                         metrics.CoordinatingPercent / 0.3
                         +
                         metrics.ComplexNounPhrasePercent / 0.3) / 5;

                    sb.Append(string.Format("{0:0.0}", composite));
                    sb.Append("</td>");
                    sb.Append("</tr>");
                }
            }

            return(fileCount);
        }
Exemplo n.º 4
0
 public CsvGeneration(MetricsCalculator metricsCalculator)
 {
     this.metricsCalculator = metricsCalculator;
 }