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); }
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); } }