/// <summary>
        /// Handles the ParseSensorRecordCommand request
        /// </summary>
        /// <param name="command">ParseSensorRecordCommand request parameters</param>
        /// <param name="cancellationToken">The token to monitor for cancellation requests. The default value is System.Threading.CancellationToken.None.</param>
        /// <returns>Returns a SensorLogModel wrapped in a CommandResult object</returns>
        public async Task <CommandResult <SensorLogModel> > Handle(ParseSensorRecordCommand command, CancellationToken cancellationToken = default)
        {
            ValidationResult validation = _validator.Validate(command);

            if (!validation.IsValid)
            {
                _logger.LogError("Parse Sensor Record Command with Path: {path} produced errors on validation: {errors}", command.Path, validation.ToString());

                return(new CommandResult <SensorLogModel>
                {
                    Result = null,
                    CommandResultType = CommandResultType.InvalidInput
                });
            }

            SensorLogModel result = await _repository.ParseInputLogFileAsync(command.Path);

            if (result == null)
            {
                _logger.LogError("Parse Sensor Record Command with Path: {path} produced an invalid result.", command.Path);

                return(new CommandResult <SensorLogModel>
                {
                    Result = null,
                    CommandResultType = CommandResultType.Error
                });
            }

            return(new CommandResult <SensorLogModel>
            {
                Result = result,
                CommandResultType = CommandResultType.Success
            });
        }
        public async Task ParseInputLogFileTest(string input, SensorLogModel expected)
        {
            // Arrange
            string path = @"C:\temp\file.txt";

            _fileSystem
            .Setup(fs => fs.File.ReadAllTextAsync(It.IsAny <string>(), default))
            .ReturnsAsync(input);

            // Act
            SensorLogModel actual = await _parseSensorRecordRepository.ParseInputLogFileAsync(path);

            // Assert
            actual
            .Should()
            .NotBeNull()
            .And
            .Equals(expected);
        }