Beispiel #1
0
        private List <Connection> GetCurrentConnectionsByNetwork(Guid networkID)
        {
            INetwork network = null;
            IEnumNetworkConnections   enumConnections = null;
            List <INetworkConnection> connections     = new List <INetworkConnection>();

            try
            {
                var results = new List <Connection>();

                network         = _manager.GetNetwork(networkID);
                enumConnections = network.GetNetworkConnections();
                connections.AddRange(enumConnections.Cast <INetworkConnection>());

                return(connections.Select(ConvertConnection).ToList());
            }
            catch (COMException e) when((uint)e.ErrorCode == 0x8000FFFF)
            {
                return(null);
            }
            finally
            {
                foreach (var connection in connections)
                {
                    ReleaseComObject(connection);
                }
                ReleaseComObject(enumConnections);
                ReleaseComObject(network);
            }
        }
Beispiel #2
0
        public void GetNetworkTest()
        {
            var ns = mgr.GetNetworks(NLM_ENUM_NETWORK.NLM_ENUM_NETWORK_CONNECTED);

            Assert.That(ns, Is.Not.Null);
            var n = ns.Cast <INetwork>().FirstOrDefault();

            Assert.That(n, Is.Not.Null);
            var g  = n.GetNetworkId();
            var n1 = mgr.GetNetwork(g);

            Assert.That(n.GetName() == n1.GetName());
            Assert.That(n.GetName(), Is.Not.Null);
            var nm = n.GetName();

            n.SetName("XXXX");
            Assert.That(n.GetName(), Is.EqualTo("XXXX"));
            n.SetName(nm);
            var de = n.GetDescription();

            n.SetDescription("XXXX");
            Assert.That(n.GetDescription(), Is.EqualTo("XXXX"));
            n.SetDescription(de);
            Assert.That((int)n.GetDomainType(), Is.InRange(0, 2));
            n.GetTimeCreatedAndConnected(out uint pdwLowDateTimeCreated, out uint pdwHighDateTimeCreated, out uint pdwLowDateTimeConnected, out uint pdwHighDateTimeConnected);
            var cft = new FILETIME {
                dwHighDateTime = (int)pdwHighDateTimeCreated, dwLowDateTime = (int)pdwLowDateTimeCreated
            };
            var nft = new FILETIME {
                dwHighDateTime = (int)pdwHighDateTimeConnected, dwLowDateTime = (int)pdwLowDateTimeConnected
            };

            Assert.That(cft.ToDateTime(), Is.GreaterThan(new DateTime(2000, 1, 1)));
            Assert.That(nft.ToDateTime(), Is.GreaterThan(new DateTime(2000, 1, 1)));
            Assert.That(n.IsConnected, Is.True);
            Assert.That(n.IsConnectedToInternet, Is.True);
            Assert.That((int)n.GetConnectivity(), Is.GreaterThan(0));
            Assert.That((int)n.GetCategory(), Is.InRange(0, 2));
            Assert.That(n.GetNetworkConnections(), Is.Not.Empty);
            TestContext.WriteLine($"{nm} ({n.GetNetworkId()}): '{de}'");
            TestContext.WriteLine($"  CrD:{cft.ToString("s")}; CnD:{nft.ToString("s")}; Cn:{n.IsConnected}; Int:{n.IsConnectedToInternet}; Dom:{n.GetDomainType()}");
            TestContext.WriteLine($"  Cnt:{n.GetConnectivity()}; Cat:{n.GetCategory()}");
        }