SenseNet.ApplicationModel.DeviceManager.Initialize C# (CSharp) Метод

Initialize() приватный Метод

private Initialize ( ) : void
Результат void
        private void Initialize()
        {
            List<Device> devices;
            var sorted = new List<Device>();

            if (RepositoryInstance.ContentQueryIsAllowed)
            {
                var result = ContentQuery.Query("+InTree:/Root/System/Devices +TypeIs:Device .AUTOFILTERS:OFF");
                devices = result.Nodes.Cast<Device>().ToList();
            }
            else
            {
                //query devices and sort them by Index
                devices = NodeQuery.QueryNodesByTypeAndPath(ActiveSchema.NodeTypes["Device"], false, "/Root/System/Devices", false).Nodes.Cast<Device>().ToList();
            }

            devices.Sort(new NodeComparer<Node>());

            //TODO: Device is renamed to lowercase but only in memory. Mustn't save it.
            foreach (var device in devices)
                device.Name = device.Name.ToLower();

            var removes = new List<Device>();
            foreach (var parent in devices)
            {
                foreach (var child in devices)
                {
                    if (child.ParentId == parent.Id)
                    {
                        child.Fallback = parent;
                        removes.Add(parent);
                    }
                }
            }
            removes.Sort();
            for (int i = removes.Count - 1; i >= 0; i--)
                devices.Remove(removes[i]);

            foreach (var device in devices)
            {
                var d = device;
                while (d != null)
                {
                    sorted.Add(d);
                    d = d.Fallback;
                }
            }
            _devices = sorted.ToArray();
        }