using System;
using System.Collections.Generic;
using System.Management;
using System.Text;
namespace Harlinn.CIMTool.Utility
{
public static class ManagementBaseObjectHelper
{
public static string GetString(this ManagementBaseObject mo, string fieldName)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return o.ToString();
}
catch (Exception)
{ }
}
return null;
}
public static byte GetByte(this ManagementBaseObject mo, string fieldName, byte defaultValue = 0)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return Convert.ToByte(o);
}
catch (Exception)
{ }
}
return defaultValue;
}
public static byte? GetNullableByte(this ManagementBaseObject mo, string fieldName)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return Convert.ToByte(o);
}
catch (Exception)
{ }
}
return null;
}
public static sbyte GetSByte(this ManagementBaseObject mo, string fieldName, sbyte defaultValue = 0)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return Convert.ToSByte(o);
}
catch (Exception)
{ }
}
return defaultValue;
}
public static sbyte? GetNullableSByte(this ManagementBaseObject mo, string fieldName)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return Convert.ToSByte(o);
}
catch (Exception)
{ }
}
return null;
}
public static short GetInt16(this ManagementBaseObject mo, string fieldName, short defaultValue = 0)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return Convert.ToInt16(o);
}
catch (Exception)
{ }
}
return defaultValue;
}
public static short? GetNullableInt16(this ManagementBaseObject mo, string fieldName)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return Convert.ToInt16(o);
}
catch (Exception)
{ }
}
return null;
}
public static ushort GetUInt16(this ManagementBaseObject mo, string fieldName, ushort defaultValue = 0)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return Convert.ToUInt16(o);
}
catch (Exception)
{ }
}
return defaultValue;
}
public static ushort? GetNullableUInt16(this ManagementBaseObject mo, string fieldName)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return Convert.ToUInt16(o);
}
catch (Exception)
{ }
}
return null;
}
public static int GetInt32(this ManagementBaseObject mo, string fieldName, int defaultValue = 0)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return Convert.ToInt32(o);
}
catch (Exception)
{ }
}
return defaultValue;
}
public static int? GetNullableInt32(this ManagementBaseObject mo, string fieldName)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return Convert.ToInt32(o);
}
catch (Exception)
{ }
}
return null;
}
public static uint GetUInt32(this ManagementBaseObject mo, string fieldName, uint defaultValue = 0)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return Convert.ToUInt32(o);
}
catch (Exception)
{ }
}
return defaultValue;
}
public static uint? GetNullableUInt32(this ManagementBaseObject mo, string fieldName)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return Convert.ToUInt32(o);
}
catch (Exception)
{ }
}
return null;
}
public static long GetInt64(this ManagementBaseObject mo, string fieldName, long defaultValue = 0)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return Convert.ToInt64(o);
}
catch (Exception)
{ }
}
return defaultValue;
}
public static long? GetNullableInt64(this ManagementBaseObject mo, string fieldName)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return Convert.ToInt64(o);
}
catch (Exception)
{ }
}
return null;
}
public static ulong GetUInt64(this ManagementBaseObject mo, string fieldName, ulong defaultValue = 0)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return Convert.ToUInt64(o);
}
catch (Exception)
{ }
}
return defaultValue;
}
public static ulong? GetNullableUInt64(this ManagementBaseObject mo, string fieldName)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return Convert.ToUInt64(o);
}
catch (Exception)
{ }
}
return null;
}
public static DateTime GetDateTime(this ManagementBaseObject mo, string fieldName)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return ManagementDateTimeConverter.ToDateTime(o.ToString());
}
catch (Exception)
{ }
}
return DateTime.MinValue;
}
public static DateTime GetDateTime(this ManagementBaseObject mo, string fieldName, DateTime defaultValue)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return ManagementDateTimeConverter.ToDateTime(o.ToString());
}
catch (Exception)
{ }
}
return defaultValue;
}
public static DateTime? GetNullableDateTime(this ManagementBaseObject mo, string fieldName)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return ManagementDateTimeConverter.ToDateTime(o.ToString());
}
catch (Exception)
{ }
}
return null;
}
public static TimeSpan GetTimeSpan(this ManagementBaseObject mo, string fieldName)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return ManagementDateTimeConverter.ToTimeSpan(o.ToString());
}
catch (Exception)
{ }
}
return new TimeSpan(0L);
}
public static TimeSpan GetTimeSpan(this ManagementBaseObject mo, string fieldName, TimeSpan defaultValue)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return ManagementDateTimeConverter.ToTimeSpan(o.ToString());
}
catch (Exception)
{ }
}
return defaultValue;
}
public static TimeSpan? GetNullableTimeSpan(this ManagementBaseObject mo, string fieldName)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return ManagementDateTimeConverter.ToTimeSpan(o.ToString());
}
catch (Exception)
{ }
}
return null;
}
public static bool GetBoolean(this ManagementBaseObject mo, string fieldName, bool defaultValue = false)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return Convert.ToBoolean(o);
}
catch (Exception)
{ }
}
return defaultValue;
}
public static bool? GetNullableBoolean(this ManagementBaseObject mo, string fieldName)
{
object o = mo[fieldName];
if (o != null)
{
try
{
return Convert.ToBoolean(o);
}
catch (Exception)
{ }
}
return null;
}
}
}