private static T GetSystemValue <T>([NotNull] string name, T defaultValue = default(T)) { SystemInfoRequest request = new SystemInfoRequest(SystemInfoType.Win32_ComputerSystem) { Scope = "root\\CIMV2" }; ManagementObject mo = FirstOrDefault(request); if (mo == null) { return(defaultValue); } object value; try { value = mo[name]; } catch { value = null; } return(value.To(defaultValue)); }
public static IEnumerable <ManagementObject> Get([NotNull] SystemInfoRequest request) { (ManagementObjectSearcher searcher, ManagementObjectCollection collection) = GetObjects(request); try { return(request.Filter == null ? collection.OfType <ManagementObject>() : collection.OfType <ManagementObject>().Where(mo => request.Filter(mo))); } catch { ObjectHelper.Dispose(ref collection); ObjectHelper.Dispose(ref searcher); return(Enumerable.Empty <ManagementObject>()); } }
public static ManagementObject LastOrDefault([NotNull] SystemInfoRequest request) { (ManagementObjectSearcher searcher, ManagementObjectCollection collection) = GetObjects(request); try { return(request.Filter == null ? collection.OfType <ManagementObject>().LastOrDefault() : collection.OfType <ManagementObject>().LastOrDefault(mo => request.Filter(mo))); } catch { ObjectHelper.Dispose(ref collection); ObjectHelper.Dispose(ref searcher); return(null); } }
public static IEnumerable <T> Get <T>([NotNull] SystemInfoRequest <T> request) { return(Get((SystemInfoRequest)request).Select(request.Converter)); }
private static (ManagementObjectSearcher Searcher, ManagementObjectCollection Collection) GetObjects([NotNull] SystemInfoRequest request) { string search = $"Select {request.SelectExpression} From {request.Type}"; if (!string.IsNullOrEmpty(request.WhereExpression)) { search += " where " + request.WhereExpression; } ManagementObjectSearcher searcher = null; ManagementObjectCollection collection = null; ManagementScope scope = string.IsNullOrEmpty(request.ScopeRoot) ? null : new ManagementScope(request.ScopeRoot); try { searcher = new ManagementObjectSearcher(scope, new ObjectQuery(search), request.Options); collection = searcher.Get(); } catch { ObjectHelper.Dispose(ref collection); ObjectHelper.Dispose(ref searcher); } return(searcher, collection); }
public static T LastOrDefault <T>([NotNull] SystemInfoRequest <T> request) { return(request.Converter(LastOrDefault((SystemInfoRequest)request))); }
public static T First <T>([NotNull] SystemInfoRequest <T> request) { return(request.Converter(First((SystemInfoRequest)request))); }
public static T Single <T>([NotNull] SystemInfoRequest <T> request) { return(request.Converter(Single((SystemInfoRequest)request))); }