using System; namespace InABox.Core { public class DFLayoutEmbeddedImageProperties : DFLayoutFieldProperties { [CheckBoxEditor] public bool DisableLibrary { get; set; } public override string FormatValue(object? value) { return value != null ? "Yes" : ""; } public override object? ParseValue(object? value) { if (value is byte[]) return value; if (value is string str) { if (Guid.TryParse(str, out var id)) { return Array.Empty(); } try { return Convert.FromBase64String(str); } catch (Exception e) { Logger.Send(LogType.Error, "", $"Error in image data; invalid Base-64: {e.Message}"); return null; } } return null; } protected override void LoadProperties() { base.LoadProperties(); DisableLibrary = GetProperty("DisableLibrary", false); } protected override void SaveProperties() { base.SaveProperties(); SetProperty("DisableLibrary", DisableLibrary); } } }