public void Record(PerformanceResult performanceResult) { using (var ctx = new Entities()) { ctx.PartIResult.Add(new PartIResult { TestNumber = GenerateNewTestNumber(ctx, performanceResult), DataBaseType = (int)dataBaseType, DateTimeAdded = DateTime.Now, TestCase = (int)performanceResult.TestCase, TestScenario = (int)performanceResult.TestScenario, ExecutionTime = performanceResult.ExecutionTime, }); ctx.SaveChanges(); } }
private List<PerformanceResult[]> GetInsertBundles(PerformanceResult[] performanceResults) { long totalCount = performanceResults.LongCount(); var maxAmountAllowed = MaxAllowedSqlParameters / 6; List<PerformanceResult[]> bundles = new List<PerformanceResult[]>(); if (totalCount > maxAmountAllowed) { long numberOfBundles = totalCount / maxAmountAllowed; int numberOfItemsBundled = 0; for (int i = 0; i < numberOfBundles; i++) { bundles.Add(performanceResults.Skip(i * maxAmountAllowed).Take(maxAmountAllowed).ToArray()); numberOfItemsBundled += maxAmountAllowed; } if (numberOfItemsBundled < totalCount) bundles.Add(performanceResults.Skip(numberOfItemsBundled).Take(MaxAllowedSqlParameters).ToArray()); } else { bundles.Add(performanceResults); } return bundles; }
private int GenerateNewTestNumber(Entities ctx, PerformanceResult performanceResult) { var testResults = ctx.PartIResult .Where(r => r.DataBaseType == (int)dataBaseType && r.TestCase == (int)performanceResult.TestCase && r.TestScenario == (int)performanceResult.TestScenario); if (testResults.Any()) return testResults.Max(r => r.TestNumber) + 1; return 1; }