/// <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);
                }
            }
        }
Exemple #2
0
 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;
 }