public dynamic GetDatumShaped(object datum, DatumType datumType, ProtoCmsRuntimeContext cmsContext, ContentListShape shape) { var finder = datumType.FinderBase(); var datumId = finder.GetDatumIdBase(datum); switch (shape) { case ContentListShape.TableRowVue: var cdt = finder.AsTableRowVueBase(datum); cdt.Add(DatumListApiResult.DATUM_TABLE_ACTION_KEY, new[] { new VueComponentDefinition { Name = "cms-widget-dropdown-button", Props = new { label = "Opt", size = "xs", type = "warning", iconCssClass = "fa fa-angle-down", items = finder.TableActionsForSingleContent(datumId, cmsContext) } } }); return(cdt); case ContentListShape.Summary: return(new { DatumId = datumId, DatumTypeId = datumType?.Id, Summary = finder.AsSummarizedValueBase(datum) }); case ContentListShape.FullPreview: return(finder.AsFullPreviewBase(datum)); default: return(datum); } }
public dynamic GetContentShaped(ProtoContent content, ContentType contentType, ProtoCmsRuntimeContext cmsContext, ContentListShape shape) { var finder = contentType.Finder(); switch (shape) { case ContentListShape.TableRowVue: var cdt = finder.AsTableRowVue(content); cdt.Add(ContentListApiResult.CONTENT_TABLE_ACTION_KEY, new[] { new VueComponentDefinition { Name = "cms-widget-dropdown-button", Props = new { label = "Opt", size = "xs", type = "warning", iconCssClass = "fa fa-angle-down", items = finder.TableActionsForSingleContent(content.Id, cmsContext) } } }); return(cdt); case ContentListShape.Summary: return(new { content.Id, content.ContentTypeId, Summary = finder.AsSummarizedValue(content, contentType.FieldNamesIncludedInSummary) }); case ContentListShape.FullPreview: return(finder.AsFullPreview(content)); default: return(finder.AsDynamic(content)); } }