public void a_windows_management_instrumentation_can_be_defined_from_a_querysource_and_a_property()
        {
            var counter = new WindowsManagementInstrumentationDefinition("\\querysource\\property");

            Assert.That(counter.QuerySource, Is.EqualTo("querysource"));
            Assert.That(counter.PropertyName, Is.EqualTo("property"));
        }
        public IEnumerable<Sample> QueryValue(string path)
        {
            var definition = new WindowsManagementInstrumentationDefinition(path);

            using (var searcher = new ManagementObjectSearcher("select * from " + definition.QuerySource))
            {
                foreach (var foundObject in searcher.Get())
                {
                    var managedObject = (ManagementObject) foundObject;
                    var value = GetInfo(managedObject, definition.PropertyName);

                    managedObject.Dispose();

                    return new[] {new Sample(string.Empty, value)};
                }

                throw new NotSupportedException($"Could not find property '{definition.PropertyName}' on any managed object in query source '{definition.QuerySource}'");
            }
        }
        public IEnumerable <Sample> QueryValue(string path)
        {
            var definition = new WindowsManagementInstrumentationDefinition(path);

            using (var searcher = new ManagementObjectSearcher("select * from " + definition.QuerySource))
            {
                foreach (var foundObject in searcher.Get())
                {
                    var managedObject = (ManagementObject)foundObject;
                    var value         = GetInfo(managedObject, definition.PropertyName);

                    managedObject.Dispose();

                    return(new[] { new Sample(string.Empty, value) });
                }

                throw new NotSupportedException($"Could not find property '{definition.PropertyName}' on any managed object in query source '{definition.QuerySource}'");
            }
        }