/// <summary> /// Gets field value from a data reader. /// </summary> /// <param name="reader">The reader.</param> /// <param name="index">The index.</param> /// <param name="row">The row.</param> /// <exception cref="ArgumentNullException">reader</exception> public override void GetFromReader(IDataReader reader, int index, IRow row) { if (reader == null) { throw new ArgumentNullException("reader"); } if (reader.IsDBNull(index)) { _setValue(row, null); } else { DateTimeOffset dto; var value = reader.GetValue(index); if (value is DateTime dt) { dto = dt; } else if (value is DateTimeOffset dtofs) { dto = dtofs; } else { dto = DateTimeOffset.Parse(value.ToString()); } _setValue(row, dto); } row.FieldAssignedValue(this); }
public override void ValueFromJson(JsonReader reader, IRow row, JsonSerializer serializer) { if (reader == null) { throw new ArgumentNullException("reader"); } switch (reader.TokenType) { case JsonToken.Null: case JsonToken.Undefined: _setValue(row, null); break; case JsonToken.String: var val = reader.Value as string; if (val == "") { _setValue(row, null); } else { _setValue(row, Guid.Parse((string)reader.Value)); } break; default: throw JsonUnexpectedToken(reader); } row.FieldAssignedValue(this); }
/// <summary> /// Gets field value from a reader. /// </summary> /// <param name="reader">The reader.</param> /// <param name="index">The index.</param> /// <param name="row">The row.</param> /// <exception cref="ArgumentNullException">reader</exception> public override void GetFromReader(IDataReader reader, int index, IRow row) { if (reader == null) { throw new ArgumentNullException("reader"); } if (reader.IsDBNull(index)) { _setValue(row, null); } else { byte[] a; if (reader.GetType().Name == "SqliteDataReader") { a = (byte[])reader.GetValue(index); } else { long available = reader.GetBytes(index, 0, null, 0, 0); a = new byte[available]; if (a.Length > 0) { reader.GetBytes(index, 0, a, 0, a.Length); } } _setValue(row, a); } row.FieldAssignedValue(this); }
/// <summary> /// Deserializes this fields value from JSON /// </summary> /// <param name="reader">The reader.</param> /// <param name="row">The row.</param> /// <param name="serializer">The serializer.</param> /// <exception cref="ArgumentNullException">reader</exception> public override void ValueFromJson(JsonReader reader, IRow row, JsonSerializer serializer) { if (reader == null) { throw new ArgumentNullException("reader"); } switch (reader.TokenType) { case JsonToken.Null: case JsonToken.Undefined: _setValue(row, null); break; case JsonToken.String: if (typeof(TValue) == typeof(string)) { _setValue(row, serializer.Deserialize <TValue>(reader)); } else { _setValue(row, JSON.Parse <TValue>((string)reader.Value, includeNulls: serializer.NullValueHandling == NullValueHandling.Include)); } break; default: _setValue(row, serializer.Deserialize <TValue>(reader)); break; } row.FieldAssignedValue(this); }
public override void ValueFromJson(JsonReader reader, IRow row, JsonSerializer serializer) { if (reader == null) { throw new ArgumentNullException("reader"); } switch (reader.TokenType) { case JsonToken.Null: case JsonToken.Undefined: _setValue(row, null); break; case JsonToken.String: _setValue(row, new MemoryStream(Convert.FromBase64String((string)reader.Value))); break; case JsonToken.Bytes: _setValue(row, new MemoryStream((byte[])reader.Value)); break; default: throw JsonUnexpectedToken(reader); } row.FieldAssignedValue(this); }
/// <summary> /// Gets field value from a data reader. /// </summary> /// <param name="reader">The reader.</param> /// <param name="index">The index.</param> /// <param name="row">The row.</param> /// <exception cref="ArgumentNullException">reader</exception> public override void GetFromReader(IDataReader reader, int index, IRow row) { if (reader == null) { throw new ArgumentNullException("reader"); } if (reader.IsDBNull(index)) { _setValue(row, null); } else { var value = reader.GetValue(index); DateTime datetime = value is DateTimeOffset dto ? dto.DateTime : (value is DateTime dt ? dt : Convert.ToDateTime(value)); if (DateTimeKind != System.DateTimeKind.Unspecified) { datetime = DateTime.SpecifyKind(datetime, DateTimeKind); } _setValue(row, datetime); } row.FieldAssignedValue(this); }
public override void ValueFromJson(JsonReader reader, IRow row, JsonSerializer serializer) { if (reader == null) { throw new ArgumentNullException("reader"); } switch (reader.TokenType) { case JsonToken.Null: case JsonToken.Undefined: _setValue(row, null); break; case JsonToken.String: case JsonToken.Integer: case JsonToken.Float: case JsonToken.Bytes: _setValue(row, (string)reader.Value); break; default: throw JsonUnexpectedToken(reader); } row.FieldAssignedValue(this); }
/// <summary> /// Gets field value from a data reader. /// </summary> /// <param name="reader">The reader.</param> /// <param name="index">The index.</param> /// <param name="row">The row.</param> /// <exception cref="ArgumentNullException">reader</exception> public override void GetFromReader(IDataReader reader, int index, IRow row) { if (reader == null) { throw new ArgumentNullException("reader"); } if (reader.IsDBNull(index)) { _setValue(row, null); } else { var value = reader.GetValue(index); TimeSpan timeSpan; if (value is TimeSpan ts) { timeSpan = ts; } else if (value is DateTime dt) { timeSpan = dt.TimeOfDay; } else { timeSpan = TimeSpan.Parse(value.ToString(), CultureInfo.InvariantCulture); } _setValue(row, timeSpan); } row.FieldAssignedValue(this); }
/// <summary> /// Copies the specified source. /// </summary> /// <param name="source">The source.</param> /// <param name="target">The target.</param> public override void Copy(IRow source, IRow target) { _setValue(target, _getValue(source)); if (target.TrackAssignments) { target.FieldAssignedValue(this); } }
public override void Copy(IRow source, IRow target) { var value = _getValue(source); if (value != null) { value = Clone(value); } _setValue(target, value); target.FieldAssignedValue(this); }
/// <summary> /// Deserializes this fields value from JSON /// </summary> /// <param name="reader">The reader.</param> /// <param name="row">The row.</param> /// <param name="serializer">The serializer.</param> /// <exception cref="ArgumentNullException">reader</exception> public override void ValueFromJson(JsonReader reader, IRow row, JsonSerializer serializer) { if (reader == null) { throw new ArgumentNullException("reader"); } switch (reader.TokenType) { case JsonToken.Null: case JsonToken.Undefined: _setValue(row, null); break; case JsonToken.Date: var obj = reader.Value; DateTime value; if (obj is DateTime dt) { value = dt; } else if (obj is DateTimeOffset dto) { _setValue(row, ToDateTimeKind(dto)); break; } else { value = Convert.ToDateTime(obj, CultureInfo.InvariantCulture); } _setValue(row, ToDateTimeKind(value)); break; case JsonToken.String: var s = ((string)reader.Value).TrimToNull(); if (s == null) { _setValue(row, null); } else { _setValue(row, ToDateTimeKind(Convert.ToDateTime(s, CultureInfo.InvariantCulture))); } break; default: throw JsonUnexpectedToken(reader); } row.FieldAssignedValue(this); }
/// <summary> /// Deserializes this fields value from JSON /// </summary> /// <param name="reader">The reader.</param> /// <param name="row">The row.</param> /// <param name="serializer">The serializer.</param> /// <exception cref="ArgumentNullException">reader</exception> public override void ValueFromJson(JsonReader reader, IRow row, JsonSerializer serializer) { if (reader == null) { throw new ArgumentNullException("reader"); } int v; switch (reader.TokenType) { case JsonToken.Null: case JsonToken.Undefined: _setValue(row, null); break; case JsonToken.Integer: case JsonToken.Float: case JsonToken.Boolean: v = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture); if (EnumType == null) { _setValue(row, v); } else { _setValue(row, (int)ConvertEnumFromInt(EnumType, v)); } break; case JsonToken.String: string s = ((string)reader.Value).TrimToNull(); if (s == null) { _setValue(row, null); } else if (EnumType == null) { _setValue(row, Convert.ToInt32(s, CultureInfo.InvariantCulture)); } else { _setValue(row, (int)ConvertEnumFromString(EnumType, s)); } break; default: throw JsonUnexpectedToken(reader); } row.FieldAssignedValue(this); }
/// <summary> /// Sets the value of this field in specified row as object. /// </summary> /// <param name="row">The row.</param> /// <param name="value">The value.</param> public override void AsObject(IRow row, object value) { if (value == null) { _setValue(row, null); } else { _setValue(row, (TimeSpan)value); } row.FieldAssignedValue(this); }
public TValue this[IRow row] { get { CheckUnassignedRead(row); return(_getValue(row)); } set { _setValue(row, value); row.FieldAssignedValue(this); } }
/// <summary> /// Sets the value of this field in specified row as object. /// </summary> /// <param name="row">The row.</param> /// <param name="value">The value.</param> public override void AsObject(IRow row, object value) { if (value == null) { _setValue(row, null); } else { _setValue(row, ToDateTimeKind((DateTime)value)); } row.FieldAssignedValue(this); }
public override void GetFromReader(IDataReader reader, int index, IRow row) { if (reader == null) { throw new ArgumentNullException("reader"); } if (reader.IsDBNull(index)) { _setValue(row, null); } else { _setValue(row, reader.GetValue(index)); } row.FieldAssignedValue(this); }
/// <summary> /// Gets field value from a data reader. /// </summary> /// <param name="reader">The reader.</param> /// <param name="index">The index.</param> /// <param name="row">The row.</param> /// <exception cref="ArgumentNullException">reader</exception> public override void GetFromReader(IDataReader reader, int index, IRow row) { if (reader == null) { throw new ArgumentNullException("reader"); } if (reader.IsDBNull(index)) { _setValue(row, null); } else { _setValue(row, Convert.ToInt64(reader.GetValue(index), CultureInfo.InvariantCulture)); } row.FieldAssignedValue(this); }
/// <summary> /// Gets field value from a data reader. /// </summary> /// <param name="reader">The reader.</param> /// <param name="index">The index.</param> /// <param name="row">The row.</param> /// <exception cref="ArgumentNullException">reader</exception> public override void GetFromReader(IDataReader reader, int index, IRow row) { if (reader == null) { throw new ArgumentNullException("reader"); } if (reader.IsDBNull(index)) { _setValue(row, null); } else { _setValue(row, JsonConvert.DeserializeObject <TValue>(reader.GetString(index), Settings ?? JsonSettings.Strict)); } row.FieldAssignedValue(this); }
/// <summary> /// Gets or sets the value of this field with the specified row. /// </summary> /// <param name="row">The row.</param> /// <returns></returns> public new TEnum? this[IRow row] { get { CheckUnassignedRead(row); var value = _getValue(row); if (value == null) { return(null); } return((TEnum)(object)value); } set { int?v = value == null ? (int?)null : Convert.ToInt32(value); _setValue(row, v); row.FieldAssignedValue(this); } }
/// <summary> /// Sets the value of this field in specified row as object. /// </summary> /// <param name="row">The row.</param> /// <param name="value">The value.</param> /// <exception cref="InvalidCastException">Invalid cast exception while trying to set the value of {Name} field on {row.GetType().Name} as object.</exception> public override void AsObject(IRow row, object value) { if (value == null) { _setValue(row, null); } else { try { _setValue(row, (TValue)value); } catch (InvalidCastException ex) { throw new InvalidCastException($"Invalid cast exception while trying to set the value of {Name} field on {row.GetType().Name} as object.", ex); } } row.FieldAssignedValue(this); }
/// <summary> /// Gets or sets the value of this field with the specified row. /// </summary> /// <param name="row">The row.</param> public new DateTime? this[IRow row] { get { CheckUnassignedRead(row); return(_getValue(row)); } set { if (value != null) { _setValue(row, ToDateTimeKind(value.Value)); } else { _setValue(row, value); } row.FieldAssignedValue(this); } }
public override void ValueFromJson(JsonReader reader, IRow row, JsonSerializer serializer) { if (reader == null) { throw new ArgumentNullException("reader"); } switch (reader.TokenType) { case JsonToken.Null: case JsonToken.Undefined: _setValue(row, null); break; default: _setValue(row, ValueFromJson(reader, serializer)); break; } row.FieldAssignedValue(this); }
/// <summary> /// Gets field value from a data reader. /// </summary> /// <param name="reader">The reader.</param> /// <param name="index">The index.</param> /// <param name="row">The row.</param> /// <exception cref="ArgumentNullException">reader</exception> public override void GetFromReader(IDataReader reader, int index, IRow row) { if (reader == null) { throw new ArgumentNullException("reader"); } var value = reader.GetValue(index); if (value is DBNull) { _setValue(row, null); } else if (value is decimal d) { _setValue(row, d); } else { _setValue(row, Convert.ToDecimal(value, CultureInfo.InvariantCulture)); } row.FieldAssignedValue(this); }
public override void Copy(IRow source, IRow target) { _setValue(target, _getValue(source)); target.FieldAssignedValue(this); }
public override void AsObject(IRow row, object value) { _setValue(row, (TValue)value); row.FieldAssignedValue(this); }