internal static object PrepareVariableForSerialization(object value, Variable variable) { value = (DBNull.Value.Equals(value) ? null : value); if (variable.OutputConverter != null && variable.OutputConverter.CanConvert(value)) { value = variable.OutputConverter.Convert(value); } else { value = DDIHelper.TryStrongTypeConversion(value); } if (variable.Type == typeof(bool) && value == null) { value = false; } else if (variable.Type == typeof(string) && value == null) { value = string.Empty; } else if (value is DateTime) { value = ((DateTime)value).LocalToUserDateTimeString(); } return(value); }