Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="args">Named arguments used in "Where" field of WQL query</param>
        /// <returns></returns>
        public override Object CollectData(IDictionary <String, Object> args)
        {
            if (args == null)
            {
                throw new ArgumentNullException("args");
            }

            if (this.conf.PerfCounters == null)
            {
                return(null);
            }

            String condition = String.Empty;

            condition = NamedArgumentHelper.Resolve(this.conf.Where, this.conf.WhereArgs, args);

            if (this.conf.PerfCounters == null || this.conf.PerfCounters.Count == 0)
            {
                return(null);
            }

            using (var result = WMIHelper.QueryInstacnes(this.conf.Namespace, this.conf.From, condition, this.selectedProperties))
            {
                var mgmtObjs = result.Cast <ManagementObject>();
                if (this.conf.ReturnValueType == MgmtObjectReturnValueType.Single)
                {
                    var mgmtObj = mgmtObjs.FirstOrDefault();
                    return(SelectPerfCounter(mgmtObj, args));
                }
                else
                {
                    var list = new List <Object>();
                    foreach (var mgmtObj in mgmtObjs)
                    {
                        list.Add(SelectPerfCounter(mgmtObj, args));
                    }
                    return(list);
                }
            }
        }