using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; namespace InABox.Core { public class DFLayoutMultiImageProperties : DFLayoutFieldProperties, DFLayoutEmbeddedMediaValues> { [CheckBoxEditor] public bool DisableLibrary { get; set; } = false; public override string FormatValue(DFLayoutEmbeddedMediaValues value) { return value.Present ? "Yes" : ""; } public override DFLayoutEmbeddedMediaValues DeserializeValue(DFLoadStorageEntry entry) { var value = new DFLayoutEmbeddedMediaValues(); value.Deserialize(entry); return value; } public override void SerializeValue(DFSaveStorageEntry entry, DFLayoutEmbeddedMediaValues value) { value.Serialize(entry); } public override List GetValue(DFLayoutEmbeddedMediaValues value) { return value.Select(x => x.ID).ToList(); } public override IEnumerable GetDisplayColumns() { yield return new CoreColumn { ColumnName = Code, DataType = typeof(List) }; yield return new CoreColumn { ColumnName = $"{Code}.IDs", DataType = typeof(List) }; yield return new CoreColumn { ColumnName = $"{Code}.Thumbnails", DataType = typeof(List) }; } public override IEnumerable> GetDisplayValues(DFLayoutEmbeddedMediaValues value) { yield return new KeyValuePair(Code, value.Select(x => DigitalFormDocumentFactory.LoadDocument(x.ID)).ToList()); yield return new KeyValuePair($"{Code}.IDs", value.Select(x => x.ID).ToList()); yield return new KeyValuePair($"{Code}.Thumbnails", value.Select(x => x.Thumbnail).ToList()); } protected override void LoadProperties() { base.LoadProperties(); DisableLibrary = GetProperty("DisableLibrary", false); } protected override void SaveProperties() { base.SaveProperties(); SetProperty("DisableLibrary", DisableLibrary); } } }