public void TinyCsvTest()
        {
            CsvParserOptions              csvParserOptions = new CsvParserOptions(true, ',');
            CsvApacheJmeterResultMapping  csvMapper        = new CsvApacheJmeterResultMapping();
            CsvParser <BenchmarkTestItem> csvParser        = new CsvParser <BenchmarkTestItem>(csvParserOptions, csvMapper);

            var dirName  = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            var filePath = Path.Combine(dirName + @"\\FileUploads\\TestCSVUpload.csv");

            var result = csvParser
                         .ReadFromFile(filePath, Encoding.ASCII)
                         .ToList();

            //Assert.Equal(21, result.Count);

            //Assert.True(result.All(x => x.IsValid));

            //Assert.Equal("Philipp", result[0].Result.FirstName);
            //Assert.Equal("Wagner", result[0].Result.LastName);

            //Assert.Equal(1986, result[0].Result.BirthDate.Year);
            //Assert.Equal(5, result[0].Result.BirthDate.Month);
            //Assert.Equal(12, result[0].Result.BirthDate.Day);

            //Assert.Equal("Max", result[1].Result.FirstName);
            //Assert.Equal("Mustermann", result[1].Result.LastName);

            //Assert.Equal(2014, result[1].Result.BirthDate.Year);
            //Assert.Equal(1, result[1].Result.BirthDate.Month);
            //Assert.Equal(1, result[1].Result.BirthDate.Day);
        }
        private async Task ProcessResults(string filePath, Guid benchmarkExperimentId)
        {
            Guard.Against.GuidNullOrDefault(benchmarkExperimentId, nameof(benchmarkExperimentId));
            Guard.Against.NullOrEmpty(filePath, nameof(filePath));

            if (!filePath.ToLower().EndsWith(".csv"))
            {
                throw new ArgumentException("File must be csv");
            }

            var application = await _benchmarkExperimentRepo.GetByIdAsync(benchmarkExperimentId);

            Guard.Against.Null(application, nameof(application));

            if (application.JmeterResultsProcessed)
            {
                return;
            }

            CsvParserOptions              csvParserOptions = new CsvParserOptions(true, ',');
            CsvApacheJmeterResultMapping  csvMapper        = new CsvApacheJmeterResultMapping();
            CsvParser <BenchmarkTestItem> csvParser        = new CsvParser <BenchmarkTestItem>(csvParserOptions, csvMapper);

            var result = csvParser
                         .ReadFromFile(filePath, Encoding.ASCII)
                         .ToList();

            if (result.Count == 0)
            {
                return;
            }

            var benchmarkItemList = result.Where(x => x.IsValid).Select(c => c.Result).ToList();

            var ignoreThreadNames = application.TestFile.ThreadNamesToIgnore;

            //remove results with threadname to ignore

            if (ignoreThreadNames != null)
            {
                benchmarkItemList = benchmarkItemList.Where(c => !ignoreThreadNames.Contains(c.Label)).ToList();
            }


            //Exclude certain fields around experiment
            var excludeArray = new string[] { "Send Start Of Experiment", "Send End of Experiment Files", "Process End Of Experiment Operations", "Send End Of Experiment" };

            //list arrays are immutable
            benchmarkItemList = benchmarkItemList.Where(c => !excludeArray.Contains(c.Label)).ToList();

            foreach (var row in benchmarkItemList)
            {
                row.ConvertToTimestamp();
                row.BenchmarkExperiment = application;
            }

            //calculate stats calculation
            application.BenchmarkStatsCalculation(benchmarkItemList.ToList());
            application.JmeterResultsProcessed = true;

            await _benchmarkExperimentRepo.UpdateAsync(application);

            await _benchmarkTestItemService.AddRangeAsync(benchmarkItemList);

            //Delete AWS or Azure Resources if marked
            await SendDeleteResourcesRequests(application);
        }