/// <summary> /// Initializes a new instance of the <see cref="BonusProvider" /> class. /// </summary> /// <param name="stream">The experience bonus stream.</param> public BonusProvider(Stream stream) { using (var csv = new CsvReader(new StreamReader(stream))) { csv.Configuration.AutoMap<BonusData>(); csv.Configuration.AllowComments = true; csv.Configuration.Delimiter = "\t"; csv.Configuration.HasHeaderRecord = false; csv.Configuration.WillThrowOnMissingField = false; csv.Configuration.SkipEmptyRecords = true; var records = csv.GetRecords<BonusData>() .Zip(Enum.GetValues(typeof(UnitType)).Cast<UnitType>(), (data, type) => new { BonusData = data, Type = type }) .ToArray(); foreach (var record in records) { var bonus = new Bonus { Initiative = record.BonusData.Initiative / 100.0, SoftAttack = record.BonusData.SoftAttack / 100.0, HardAttack = record.BonusData.HardAttack / 100.0, AirAttack = record.BonusData.AirAttack / 100.0, NavalAttack = record.BonusData.NavalAttack / 100.0, GroundDefense = record.BonusData.GroundDefense / 100.0, AirDefense = record.BonusData.AirDefense / 100.0, CloseDefense = record.BonusData.CloseDefense / 100.0, Range = 0.0, Movement = 0.0, Spotting = 0.0, }; this._boni.Add(record.Type, bonus); } } }
public static int ImportCsv(string path) { var importCounter = 0; using (var csv = new CsvReader(new StreamReader(path))) { csv.Configuration.RegisterClassMap<Models.ComputerCsvMap>(); var records = csv.GetRecords<Models.Computer>(); foreach (var computer in records) { if (AddComputer(computer).IsValid) importCounter++; } } return importCounter; }