c# – Parse meter readings from CSV file

I have a class representing meter readings:

public class MeterReading
    {
        public double AccountId { get; set; }
        public DateTime MeterReadingDateTime { get; set; }
        public double MeterReadValue { get; set; }
    }

I also have a collection of MeterReadings called MeterReadingParseResult:

public class MeterReadingsParseResult : MeterReadingsBase
{
}

This inherits from MeterReadingBase

public class MeterReadingsBase
{
    private List<MeterReading> meterReadings = new List<MeterReading>();
    public List<MeterReading> MeterReadings { get => meterReadings; set => meterReadings = value; }
    public int FailedParseReadings { get; set; }
}

The main method I am concerned with takes in an IFormFile which is a CSV and using the help of the CSVHelper NuGet packages I can validate the CSV file content, pass it into my MeterReading class and add it to my MeterReadingParseResult collection. The CSVHelper code is usually a few lines of code but some of the CSV file may contain words where it needs to be doubles so I have had to customise it to make the validation suit my purpose.

{
public class MeterReadingsCsvProcessor
{
private readonly IMeterReadingsRepository _meterReadingsRepository;
private readonly IAccountsRepository _accountsRepository;
private MeterReadingsParseResult _parseResult;

    public MeterReadingsCsvProcessor(
        IMeterReadingsRepository meterReadingsRepository, IAccountsRepository accountsRepository)
    {
        _meterReadingsRepository = meterReadingsRepository;
        _accountsRepository = accountsRepository;
        _parseResult = new MeterReadingsParseResult();
    }

    public MeterReadingsParseResult CsvHandler(IFormFile file)
    {
        if (file == null)
            throw new ArgumentNullException(nameof(file));

        ParseCsv(file);

        var accounts = _accountsRepository.GetAccounts();

        return _parseResult;
    }


    private void ParseCsv(IFormFile file)
            {
                TextReader textReader = new StreamReader(file.OpenReadStream());
                using (var csv = new CsvReader(textReader, CultureInfo.InvariantCulture))
                {
                    csv.Read();
                    csv.ReadHeader();
    
                    CsvCustomErrorHandler<int> customInt32Converter = new CsvCustomErrorHandler<int>();
    
                    int lineNumber = 0;
    
                    while (csv.Read())
                    {
                        lineNumber++;
                        var meterReading = new MeterReading();
                        {
                            meterReading.AccountId = csv.GetField<int>("AccountId");
    
                            meterReading.MeterReadingDateTime  = DateTime.ParseExact
                                (csv.GetField("MeterReadingDateTime"), 
                                "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);
    
                            meterReading.MeterReadValue = csv.GetField<int>("MeterReadValue", customInt32Converter);
                            if (meterReading.MeterReadValue < 1 || meterReading.MeterReadValue >= 100000)
                            {
                                _parseResult.FailedParseReadings++;
                                continue;
                            }
                        }
                        _parseResult.MeterReadings.Add(meterReading);
    
                    }
                }
            }
}

Can I refactor this code in anyway to make it look cleaner or in your opinions do you think I have done the best with the functionality I need to achieve?