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;
 }