Exemple #1
0
        private void GenerateScopeTree(DHCPv4Scope scope, ICollection <DHCPv4ScopeTreeViewItem> parentChildren)
        {
            List <DHCPv4ScopeTreeViewItem> childItems = new List <DHCPv4ScopeTreeViewItem>();
            var node = new DHCPv4ScopeTreeViewItem
            {
                Id                  = scope.Id,
                StartAddress        = scope.AddressRelatedProperties.Start.ToString(),
                EndAddress          = scope.AddressRelatedProperties.End.ToString(),
                Name                = scope.Name,
                ChildScopes         = childItems,
                ExcludedAddresses   = scope.AddressRelatedProperties.ExcludedAddresses.Select(x => x.ToString()).ToArray(),
                SubnetMask          = scope.AddressRelatedProperties.Mask == null ? new Byte?() : (Byte)scope.AddressRelatedProperties.Mask.GetSlashNotation(),
                FirstGatewayAddress = (scope.Properties?.Properties ?? Array.Empty <DHCPv4ScopeProperty>()).OfType <DHCPv4AddressListScopeProperty>().Where(x => x.OptionIdentifier == (Byte)DHCPv4OptionTypes.Router).Select(x => x.Addresses.First().ToString()).FirstOrDefault(),
            };

            parentChildren.Add(node);

            if (scope.GetChildScopes().Any())
            {
                foreach (var item in scope.GetChildScopes())
                {
                    GenerateScopeTree(item, childItems);
                }
            }
        }
Exemple #2
0
        private void CheckTreeItem(DHCPv4Scope item, DHCPv4ScopeTreeViewItem viewItem)
        {
            Assert.Equal(item.Name, viewItem.Name);
            Assert.Equal(item.Id, viewItem.Id);
            Assert.Equal(item.AddressRelatedProperties.Start.ToString(), viewItem.StartAddress);
            Assert.Equal(item.AddressRelatedProperties.End.ToString(), viewItem.EndAddress);
            Assert.Equal(item.AddressRelatedProperties.ExcludedAddresses.Select(x => x.ToString()).ToArray(), viewItem.ExcludedAddresses);
            Assert.Equal((item.Properties?.Properties ?? Array.Empty <DHCPv4ScopeProperty>()).Where(x => x.OptionIdentifier == (Byte)DHCPv4OptionTypes.Router).Cast <DHCPv4AddressListScopeProperty>().Select(x => x.Addresses.First().ToString()).FirstOrDefault(), viewItem.FirstGatewayAddress);

            if (item.GetChildScopes().Any() == true)
            {
                Assert.Equal(item.GetChildScopes().Count(), viewItem.ChildScopes.Count());
                Int32 index = 0;
                foreach (var childScope in item.GetChildScopes())
                {
                    var childViewItem = viewItem.ChildScopes.ElementAt(index);
                    CheckTreeItem(childScope, childViewItem);

                    index++;
                }
            }
            else
            {
                Assert.Empty(viewItem.ChildScopes);
            }
        }
Exemple #3
0
 private void GoThroughScopeTree(DHCPv4ScopeTreeViewItem item, Int32 depth, ICollection <(DHCPv4ScopeTreeViewItem item, Int32 depth)> result)