public ActionResult IndexPost()
        {
            var random = new Random();
            var viewModel = new ComparisonViewModel(null);
            TryUpdateModel(viewModel);

            Series[] series;

            if (!viewModel.AllIndexes)
            {
                series = new[]
                         {
                             this.GetSeries(viewModel.Query, viewModel.FirstIndex, random, viewModel.NumberOfQueries, viewModel.Data),
                             this.GetSeries(viewModel.Query, viewModel.SecondIndex, random, viewModel.NumberOfQueries, viewModel.Data),
                         };
            }
            else
            {
                series = Enum.GetValues(typeof(IndexEnum)).OfType<IndexEnum>()
                    .Select(t => this.GetSeries(viewModel.Query, t, random, viewModel.NumberOfQueries, viewModel.Data)).ToArray();
            }

            DotNet.Highcharts.Highcharts chart = this.GetChart(series, viewModel.Data);

            viewModel.Chart = chart;

            var report = (Session["report"] as List<ReportViewModel>) ?? new List<ReportViewModel>();
            report.Add(new ReportViewModel(viewModel, series));
            Session["report"] = report;

            return View(viewModel);
        }
 public ReportViewModel(ComparisonViewModel viewModel, Series[] series)
 {
     Data = viewModel.Data;
     Query = viewModel.Query;
     Results = new List<TestResult>();
     foreach (var s in series)
     {
         var index = (IndexEnum)Enum.Parse(typeof(IndexEnum), s.Name);
         for(int i = 0; i < s.Data.ArrayData.Length; i++)
         {
             var size = DataSizeEnum.None;
             if (Data != DataEnum.countries)
                 size = (DataSizeEnum)Enum.GetValues(typeof(DataSizeEnum)).GetValue(i+1);
             Results.Add(new TestResult
                         {
                             Result = (double)s.Data.ArrayData[i],
                             Index = index,
                             DataSize = size
                         });
         }
     }
 }
 public ReportViewModel(ComparisonViewModel viewModel, Series[] series)
 {
     Data    = viewModel.Data;
     Query   = viewModel.Query;
     Results = new List <TestResult>();
     foreach (var s in series)
     {
         var index = (IndexEnum)Enum.Parse(typeof(IndexEnum), s.Name);
         for (int i = 0; i < s.Data.ArrayData.Length; i++)
         {
             var size = DataSizeEnum.None;
             if (Data != DataEnum.countries)
             {
                 size = (DataSizeEnum)Enum.GetValues(typeof(DataSizeEnum)).GetValue(i + 1);
             }
             Results.Add(new TestResult
             {
                 Result   = (double)s.Data.ArrayData[i],
                 Index    = index,
                 DataSize = size
             });
         }
     }
 }