DFLayoutTimeStampFieldProperties.cs 952 B

1234567891011121314151617181920212223242526272829303132333435
  1. using System;
  2. namespace InABox.Core
  3. {
  4. public class DFLayoutTimeStampFieldProperties : DFLayoutFieldProperties<DateTime, DateTime?>
  5. {
  6. public override string FormatValue(DateTime? value)
  7. {
  8. return string.Format("{0:mm HH dd MMM yy}", value);
  9. }
  10. public override void SerializeValue(DFSaveStorageEntry entry, DateTime? value)
  11. {
  12. if (value != null)
  13. {
  14. entry.SetValue(value);
  15. }
  16. }
  17. public override DateTime? DeserializeValue(DFLoadStorageEntry entry)
  18. {
  19. var value = entry.GetValue();
  20. if (value is DateTime date)
  21. return date;
  22. if (DateTime.TryParse(value as string, out var result))
  23. return result;
  24. return null;
  25. }
  26. public override DateTime GetValue(DateTime? value)
  27. {
  28. return value ?? Default;
  29. }
  30. }
  31. }