public override Zone GenerateZone()
        {
            if (!File.Exists(this.Filename))
            {
                return(null);
            }

            CsvParser parser   = CsvParser.Create(this.Filename);
            var       machines = parser.Rows.Select(row => new { MachineFunction = row["MachineFunction"], StaticIP = row["StaticIP"], MachineName = row["MachineName"] }).ToArray();

            var zoneRecords = machines
                              .GroupBy(machine => machine.MachineFunction + _zoneSuffix, machine => IPAddress.Parse(machine.StaticIP))
                              .Select(group => new ZoneRecord {
                Host = group.Key, Count = group.Count(), Addresses = group.Select(address => address).ToArray()
            })
                              .ToArray();

            Zone zone = new Zone();

            zone.Suffix = _zoneSuffix;
            zone.Serial = _serial;
            zone.Initialize(zoneRecords);

            // increment serial number
            _serial++;
            return(zone);
        }
예제 #2
0
        private Parser <VscRow> CreateParser(List <string> languages)
        {
            var mapping = new VscRow.Mapping(languages);

            return(CsvParser.Create <VscRow, VscRow.Mapping>(mapping));
        }
예제 #3
0
        private Parser <VseRow> CreateParser()
        {
            var mapping = new VseRow.Mapping();

            return(CsvParser.Create <VseRow, VseRow.Mapping>(mapping));
        }