Exemplo n.º 1
0
        private async Task CreateLinksAsync(Resources resources, IContentWorkflow workflow, ISchemaEntity schema)
        {
            var values = new { app = resources.App, schema = schema.SchemaDef.Name };

            AddSelfLink(resources.Url <ContentsController>(x => nameof(x.GetContents), values));

            if (resources.CanCreateContent(values.schema))
            {
                AddPostLink("create", resources.Url <ContentsController>(x => nameof(x.PostContent), values));

                if (resources.CanChangeStatus(values.schema) && await workflow.CanPublishInitialAsync(schema, resources.Context.User))
                {
                    var publishValues = new { values.app, values.schema, publish = true };

                    AddPostLink("create/publish", resources.Url <ContentsController>(x => nameof(x.PostContent), publishValues));
                }
            }
        }