Esempio n. 1
0
        public static Dictionary <PeripheralTreeEntry, IEnumerable <IRegistrationPoint> > GetPeripheralsWithAllRegistrationPoints(this Machine machine)
        {
            var result = new Dictionary <PeripheralTreeEntry, IEnumerable <IRegistrationPoint> >();

            var peripheralEntries = machine.GetRegisteredPeripherals().ToArray();

            foreach (var entryList in peripheralEntries.OrderBy(x => x.Name).GroupBy(x => x.Peripheral))
            {
                var uniqueEntryList = entryList.DistinctBy(x => x.RegistrationPoint).ToArray();
                var entry           = uniqueEntryList.FirstOrDefault();
                if (entry != null)
                {
                    result.Add(entry, uniqueEntryList.Select(x => x.RegistrationPoint).ToList());
                }
            }

            return(result);
        }