/// <summary> /// Writes the specified <paramref name="value"/> using the specified <paramref name="writer"/>. /// </summary> /// <param name="writer">The writer.</param> /// <param name="value">The value.</param> public async Task WriteValueAsync(AsyncBinaryWriter writer, T value) { Guard.NotNull(writer, nameof(writer)); Guard.NotNull(value, nameof(value)); var internalValue = new UIntPalmValue(this.Length); var data = (uint)(int)(object)value; await internalValue.WriteValueAsync(writer, data); }
/// <summary> /// Writes the specified <paramref name="value"/> using the specified <paramref name="writer"/>. /// </summary> /// <param name="writer">The writer.</param> /// <param name="value">The value.</param> public async Task WriteValueAsync(AsyncBinaryWriter writer, DateTimeOffset?value) { Guard.NotNull(writer, nameof(writer)); DateTimeOffset baseDateTime = this.WriteAsUnixTimeStamp ? new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero) : new DateTimeOffset(1904, 1, 1, 0, 0, 0, TimeSpan.Zero); var secondsSinceUnixTimestamp = value != null ? (uint)(value.Value - baseDateTime).TotalSeconds : 0U; var internalValue = new UIntPalmValue(4); await internalValue.WriteValueAsync(writer, secondsSinceUnixTimestamp); }