DFLayoutEmbeddedMediaValue.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System;
  2. namespace InABox.Core
  3. {
  4. public class DFLayoutEmbeddedMediaValue
  5. {
  6. public Guid ID { get; set; }
  7. public byte[]? Data { get; set; }
  8. public byte[]? Thumbnail { get; set; }
  9. public void Load(string json)
  10. {
  11. if (String.IsNullOrWhiteSpace(json))
  12. return;
  13. try
  14. {
  15. var externaldata = Serialization.Deserialize<(Guid, byte[])>(json, true);
  16. if (externaldata.Item1 != Guid.Empty)
  17. {
  18. ID = externaldata.Item1;
  19. Thumbnail = externaldata.Item2;
  20. }
  21. }
  22. catch
  23. {
  24. if (Guid.TryParse(json, out Guid id) && (id != Guid.Empty))
  25. {
  26. ID = id;
  27. Thumbnail = null;
  28. }
  29. else
  30. {
  31. ID = Guid.Empty;
  32. Data = Convert.FromBase64String(json);
  33. Thumbnail = null;
  34. }
  35. }
  36. }
  37. public override string ToString()
  38. {
  39. return Serialization.Serialize((ID, Thumbnail));
  40. }
  41. }
  42. }