public bool Analyse(string filePath, CsvParserType readerType)
        {
            _records = PopulateRecordsFromFile();
            _stats   = CalculateBasicStats();

            return(_stats != null);
        }
        public ICsvParser GetCsvParserByType(CsvParserType type)
        {
            var foundReaders = Assembly.GetExecutingAssembly().GetTypes()
                               .Where(x => typeof(ICsvParser).IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract)
                               .Select(x =>
            {
                return(Activator.CreateInstance(x));
            })
                               .Cast <ICsvParser>()
                               .ToImmutableDictionary(k => k.Type, v => v);

            return(foundReaders[type]);
        }