/// <summary> /// Converts the <see cref="sourceValue" /> parameter to the <see cref="destinationType" /> parameter using <see cref="formatProvider" /// /> and <see cref="ignoreCase" /> /// </summary> /// <param name="sourceValue">the value to convert into an instance of <see cref="VmDisk" />.</param> /// <returns> /// an instance of <see cref="VmDisk" />, or <c>null</c> if there is no suitable conversion. /// </returns> public static object ConvertFrom(dynamic sourceValue) { if (null == sourceValue) { return(null); } try { VmDisk.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString()); } catch { // Unable to use JSON pattern } try { return(new VmDisk { DataSourceReference = ReferenceTypeConverter.ConvertFrom(sourceValue.DataSourceReference), DeviceProperties = VmDiskDevicePropertiesTypeConverter.ConvertFrom(sourceValue.DeviceProperties), DiskSizeBytes = sourceValue.DiskSizeBytes, DiskSizeMib = sourceValue.DiskSizeMib, Uuid = sourceValue.Uuid, VolumeGroupReference = ReferenceTypeConverter.ConvertFrom(sourceValue.VolumeGroupReference), }); } catch { } return(null); }
public override string GetQuotedValue(object value, Type fieldType) { if (value == null) { return("NULL"); } IOrmLiteConverter converter = null; try { var isEnum = fieldType.IsEnum || value.GetType().IsEnum; if (isEnum) { return(EnumConverter.ToQuotedString(fieldType, value)); } if (Converters.TryGetValue(fieldType, out converter)) { return(converter.ToQuotedString(fieldType, value)); } if (fieldType.IsRefType()) { return(ReferenceTypeConverter.ToQuotedString(fieldType, value)); } if (fieldType.IsValueType()) { return(ValueTypeConverter.ToQuotedString(fieldType, value)); } } catch (Exception ex) { Log.Error("Error in {0}.ToQuotedString() value '{0}' and Type '{1}'" .Fmt(converter.GetType().Name, value != null ? value.GetType().Name : "undefined", fieldType.Name), ex); throw; } return(ShouldQuoteValue(fieldType) ? GetQuotedValue(value.ToString()) : value.ToString()); }
/// <summary> /// Converts the <see cref="sourceValue" /> parameter to the <see cref="destinationType" /> parameter using <see cref="formatProvider" /// /> and <see cref="ignoreCase" /> /// </summary> /// <param name="sourceValue">the value to convert into an instance of <see cref="VmResourcesDefStatus" />.</param> /// <returns> /// an instance of <see cref="VmResourcesDefStatus" />, or <c>null</c> if there is no suitable conversion. /// </returns> public static object ConvertFrom(dynamic sourceValue) { if (null == sourceValue) { return(null); } try { VmResourcesDefStatus.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString()); } catch { // Unable to use JSON pattern } try { return(new VmResourcesDefStatus { BootConfig = VmBootConfigTypeConverter.ConvertFrom(sourceValue.BootConfig), DiskList = sourceValue.DiskList, GpuList = sourceValue.GpuList, GuestCustomization = GuestCustomizationStatusTypeConverter.ConvertFrom(sourceValue.GuestCustomization), GuestOsId = sourceValue.GuestOsId, GuestTools = GuestToolsStatusTypeConverter.ConvertFrom(sourceValue.GuestTools), HardwareClockTimezone = sourceValue.HardwareClockTimezone, HostReference = ReferenceTypeConverter.ConvertFrom(sourceValue.HostReference), HypervisorType = sourceValue.HypervisorType, MemorySizeMib = sourceValue.MemorySizeMib, NicList = sourceValue.NicList, NumSockets = sourceValue.NumSockets, NumVcpusPerSocket = sourceValue.NumVcpusPerSocket, ParentReference = ReferenceTypeConverter.ConvertFrom(sourceValue.ParentReference), PowerState = sourceValue.PowerState, PowerStateMechanism = VmPowerStateMechanismTypeConverter.ConvertFrom(sourceValue.PowerStateMechanism), VgaConsoleEnabled = sourceValue.VgaConsoleEnabled, VnumaConfig = VmVnumaConfigTypeConverter.ConvertFrom(sourceValue.VnumaConfig), }); } catch { } return(null); }
public override object ToDbValue(object value, Type type) { if (value == null || value is DBNull) { return(null); } if (type.IsEnum && !type.HasAttribute <EnumAsIntAttribute>()) { return(EnumConverter.ToDbValue(type, value)); } if (type.IsRefType()) { return(ReferenceTypeConverter.ToDbValue(type, value)); } IOrmLiteConverter converter = null; try { if (Converters.TryGetValue(type, out converter)) { if (type == typeof(DateTimeOffset)) { return(converter.ToQuotedString(type, value)); } return(converter.ToDbValue(type, value)); } } catch (Exception ex) { Log.Error("Error in {0}.ToDbValue() value '{1}' and Type '{2}'" .Fmt(converter.GetType().Name, value != null ? value.GetType().Name : "undefined", type.Name), ex); throw; } return(base.ToDbValue(value, type)); }