Ejemplo n.º 1
0
 public ElectronicBookDataParser(ElectronicBookExcelData fileData, IDataRepository repository) : base(fileData)
 {
     _nameParser            = new StringParser <ElectronicBookColumnNames>(ElectronicBookColumnNames.Name);
     _priceParser           = new PriceParser <ElectronicBookColumnNames>(ElectronicBookColumnNames.Price);
     _descriptionParser     = new StringParser <ElectronicBookColumnNames>(ElectronicBookColumnNames.Description);
     _manufacturerParser    = new ManufacturerParser <ElectronicBookColumnNames>(ElectronicBookColumnNames.Manufacturer, repository);
     _screenDiagonalParser  = new DoubleParser <ElectronicBookColumnNames>(ElectronicBookColumnNames.ScreenDiagonal);
     _screenTypeParser      = new ScreenTypeParser <ElectronicBookColumnNames>(ElectronicBookColumnNames.ScreenType, repository);
     _batteryCapacityParser = new IntParser <ElectronicBookColumnNames>(ElectronicBookColumnNames.BatteryCapacity);
     _workingTimeParser     = new StringParser <ElectronicBookColumnNames>(ElectronicBookColumnNames.WorkingTime);
 }
Ejemplo n.º 2
0
        private void Parse(ElectronicBookExcelData excelData, ElectronicBookColumnNames column, int i)
        {
            switch (column)
            {
            case ElectronicBookColumnNames.Name:
                currentElectronicBook.Name = _nameParser.TryParse(excelData, i);
                break;

            case ElectronicBookColumnNames.Price:
                currentElectronicBook.Price = _priceParser.TryParse(excelData, i);
                break;

            case ElectronicBookColumnNames.Description:
                currentElectronicBook.Description = _descriptionParser.TryParse(excelData, i);
                break;

            case ElectronicBookColumnNames.Manufacturer:
                currentElectronicBook.Manufacturer = new ManufacturerDto
                {
                    Id = _manufacturerParser.TryParse(excelData, i)
                };
                break;

            case ElectronicBookColumnNames.ScreenDiagonal:
                currentElectronicBook.ScreenDiagonal = _screenDiagonalParser.TryParse(excelData, i);
                break;

            case ElectronicBookColumnNames.ScreenType:
                currentElectronicBook.ScreenType = new ScreenTypeDto
                {
                    Id = _screenTypeParser.TryParse(excelData, i)
                };
                break;

            case ElectronicBookColumnNames.BatteryCapacity:
                currentElectronicBook.BatteryCapacity = _batteryCapacityParser.TryParse(excelData, i);
                break;

            case ElectronicBookColumnNames.WorkingTime:
                currentElectronicBook.WorkingTime = _workingTimeParser.TryParse(excelData, i);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(column), column, null);
            }
        }