public static Dictionary <DateTime, ArchivalPeriodicityCount> GetPeriodicityCountsForEvaluation(Evaluation evaluation, bool discardOutliers) { var toReturn = new Dictionary <DateTime, ArchivalPeriodicityCount>(); var calc = new DatasetTimespanCalculator(); var result = calc.GetMachineReadableTimespanIfKnownOf(evaluation, discardOutliers); using (var con = evaluation.DQERepository.GetConnection()) { var sql = @"SELECT [Year] ,[Month] ,RowEvaluation ,CountOfRecords FROM [PeriodicityState] where Evaluation_ID = " + evaluation.ID + " and PivotCategory = 'ALL' ORDER BY [Year],[Month]"; using (var cmd = DatabaseCommandHelper.GetCommand(sql, con.Connection, con.Transaction)) { using (var r = cmd.ExecuteReader()) { while (r.Read()) { var date = new DateTime((int)r["Year"], (int)r["Month"], 1); //discard outliers before start if (discardOutliers && result.Item1.HasValue && date < result.Item1.Value) { continue; } //discard outliers after end if (discardOutliers && result.Item2.HasValue && date > result.Item2.Value) { continue; } if (!toReturn.ContainsKey(date)) { toReturn.Add(date, new ArchivalPeriodicityCount()); } var toIncrement = toReturn[date]; /* * * Correct * InvalidatesRow * Missing * Wrong * */ switch ((string)r["RowEvaluation"]) { case "Correct": toIncrement.CountGood += (int)r["CountOfRecords"]; toIncrement.Total += (int)r["CountOfRecords"]; break; case "InvalidatesRow": toIncrement.Total += (int)r["CountOfRecords"]; break; case "Missing": toIncrement.Total += (int)r["CountOfRecords"]; break; case "Wrong": toIncrement.Total += (int)r["CountOfRecords"]; break; default: throw new ArgumentOutOfRangeException("Unexpected RowEvaluation '" + r["RowEvaluation"] + "'"); } } } } } return(toReturn); }
public DQEGraphAnnotation(DQERepository repository, double startX, double startY, double endX, double endY, string text, Evaluation evaluation, DQEGraphType annotationIsForGraphType, string pivotCategory) { Repository = repository; var username = Environment.UserName; Repository.InsertAndHydrate(this, new Dictionary <string, object> { { "StartX", startX }, { "StartY", startY }, { "EndX", endX }, { "EndY", endY }, { "Text", text }, { "Evaluation_ID", evaluation.ID }, { "Username", username }, { "CreationDate", DateTime.Now }, { "AnnotationIsForGraph", annotationIsForGraphType }, { "PivotCategory", pivotCategory } }); }
public static Dictionary <DateTime, ArchivalPeriodicityCount> GetPeriodicityCountsForEvaluation(Evaluation evaluation) { var toReturn = new Dictionary <DateTime, ArchivalPeriodicityCount>(); using (var con = evaluation.DQERepository.GetConnection()) { var sql = @"SELECT [Year] ,[Month] ,RowEvaluation ,CountOfRecords FROM [PeriodicityState] where Evaluation_ID = " + evaluation.ID + " and PivotCategory = 'ALL' ORDER BY [Year],[Month]"; var cmd = DatabaseCommandHelper.GetCommand(sql, con.Connection, con.Transaction); var r = cmd.ExecuteReader(); while (r.Read()) { var date = new DateTime((int)r["Year"], (int)r["Month"], 1); if (!toReturn.ContainsKey(date)) { toReturn.Add(date, new ArchivalPeriodicityCount()); } var toIncrement = toReturn[date]; /* * * Correct * InvalidatesRow * Missing * Wrong * */ switch ((string)r["RowEvaluation"]) { case "Correct": toIncrement.CountGood += (int)r["CountOfRecords"]; toIncrement.Total += (int)r["CountOfRecords"]; break; case "InvalidatesRow": toIncrement.Total += (int)r["CountOfRecords"]; break; case "Missing": toIncrement.Total += (int)r["CountOfRecords"]; break; case "Wrong": toIncrement.Total += (int)r["CountOfRecords"]; break; default: throw new ArgumentOutOfRangeException("Unexpected RowEvaluation '" + r["RowEvaluation"] + "'"); } } } return(toReturn); }