static void Main(string[] args) { string currentDirectory = System.IO.Directory.GetCurrentDirectory(); string filePath = currentDirectory + "/SampleData.csv"; CSVReader reader = new CSVReader(); var data = reader.ReadFile(filePath); Calculator calculator = new Calculator(data); var mean = calculator.Mean(); var stDev = calculator.StDev(); var bins = calculator.Bin(BIN_START, BIN_END, BIN_INTERVAL); Summariser summariser = new Summariser(); summariser.WriteSummaryStats(mean, stDev); summariser.WriteGroupedFrequencyTable(bins, BIN_START, BIN_INTERVAL); }
public IActionResult SummaryResults(TextSummary model) { var txt1 = Task <string> .Factory.StartNew(() => Summariser.TextRank(model.InputText, model.TextRank_MaxWords)); var txt2 = Task <string> .Factory.StartNew(() => Summariser.OpenText(model.InputText, model.OpenText_MaxSentences)); var txt3 = Task <string> .Factory.StartNew(() => Summariser.CodePlexOpenText(model.InputText, model.CodePlexOpenText_DisplayPercent)); var tasks = new List <Task>(new[] { txt1, txt2, txt3 }); Task.WaitAll(tasks.ToArray()); var contact = _contactDatastore.ByEmail(_context.Email()); var hash = _hash.CreateMD5(model.InputText); var priorUsage = _usageDatastore .ByInputText(hash) .Where(x => x.ContactId == contact.Id) .OrderBy(x => x.DateTimeUTC) .FirstOrDefault(); if (priorUsage == null || priorUsage?.DateTimeUTC.AddDays(1) < DateTime.Now.ToUniversalTime()) { // only charge if this is a new summary for today _usageDatastore.Create(new Usage { ContactId = contact.Id, InputText = hash }); } var result = new SummaryResults { Input = model.InputText, TextRank = txt1.Result, OpenTextSummarizer = txt2.Result, CodePlexOpenTextSummarizer = txt3.Result }; return(View(result)); }