コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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));
            }
        }