Beispiel #1
0
        public void CopyTo_Negative_arrayIndex_Exception()
        {
            var array = new CsvDataRow[10];

            Assert.Throws <ArgumentOutOfRangeException>(() => _rows.CopyTo(array, -1));
            Assert.Throws <ArgumentOutOfRangeException>(() => _rows.CopyTo(array, int.MinValue));

            Assert.Throws <ArgumentOutOfRangeException>(() => _rows.CopyTo(array, 10));
        }
        private static List <CsvDataRow> ReadCsvFile(string filename)
        {
            List <CsvDataRow> values = File.ReadAllLines(filename) //"C:\\Users\\Josh\\Sample.csv")
                                       .Skip(1)
                                       .Select(v => CsvDataRow.FromCsv(v))
                                       .ToList();

            return(values);
        }
        /// <summary/>
        protected internal override void ResetVillageObject()
        {
            base.ResetVillageObject();

            //_timer.Stop();
            _timer.Reset();
            Village?.WorkerManager.DeallotateWorker(this);

            _nextUprade    = default(TCsvData);
            _isUpgradeable = default(bool);
            _rowCache      = default(CsvDataRow <TCsvData>);
        }
        /// <summary>
        /// Updates the <see cref="VillageObject{TCsvData}.Data"/> associated with this <see cref="Buildable{TCsvData}"/> using
        /// <see cref="VillageObject.Assets"/>, the specified data ID and level.
        /// </summary>
        /// <param name="dataId"></param>
        /// <param name="level"></param>
        protected virtual void UpdateData(int dataId, int level)
        {
            Debug.Assert(level >= NotConstructedLevel, "Level was less than NotConstructedLevel.");

            // If we haven't cached the CsvDataRow in which Data
            // is found, we do it.
            if (RowCache == null)
            {
                var tableCollections = Assets.DataTables;
                var dataRef          = new CsvDataRowRef <TCsvData>(dataId);
                var row = dataRef.Get(tableCollections);
                if (row == null)
                {
                    throw new InvalidOperationException("Could not find CsvDataRow with ID '" + dataId + "'.");
                }

                _rowCache = row;
            }

            if (RowCache.Name == "Town Hall")
            {
                Village._townhall = this as Building;
            }
            else if (RowCache.Name == "Worker Building")
            {
                Village.WorkerManager._totalWorkers++;
            }

            // Data is null when lvl is -1
            // However NextUpgrade should not.
            if (level == NotConstructedLevel)
            {
                _data = null;
            }
            else
            {
                _data = RowCache[level];
                if (_data == null)
                {
                    throw new InvalidOperationException("Could not find CsvData with ID '" + dataId + "' and with level '" + level + "'.");
                }
            }

            _upgradeLevel = level;
        }
Beispiel #5
0
    public void LoadCsv(string csvFileName)
    {
        string header;
        string data;

        using (var reader = new StreamReader(csvFileName))
        {
            header = reader.ReadLine();     // assumes 1st row is column headers
            data   = reader.ReadToEnd();
        }
        Columns = header.Split(Delimiter);
        var rows = Regex.Split(data, Environment.NewLine);

        if (!rows.Select(row => row.Split(Delimiter)).All(row => row.Length == Columns.Length))
        {
            throw new FormatException("Inconsistent data format.");
        }
        Rows = new ObservableCollection <CsvDataRow>(rows.Select(row => CsvDataRow.Create(row, Delimiter)));
    }
Beispiel #6
0
        public void CopyTo_ValidArgs_ElementsCopied()
        {
            for (int i = 0; i < 10; i++)
            {
                _rows.Add(_table.NewRow("lerow" + i));
            }

            var array = new CsvDataRow[10];

            _rows.CopyTo(array, 2);
            for (int i = 0; i < 2; i++)
            {
                Assert.Null(array[i]);
            }

            for (int i = 2; i < 8; i++)
            {
                var expected = _rows[i - 2];
                var actual   = array[i];
                Assert.AreSame(expected, actual);
            }
        }
 public void SetUp()
 {
     _table = new CsvDataTable <TestData>();
     _row   = _table.NewRow("LeRow");
 }