Examples are written for the Projects feature (aka Project Mode).
ProjectStatus`, used by the "old" project gadget, is not documented here. For example, the List method has an overload that takes this parameter. You should not use `
ProjectStatus` because it is being phased out.
Currently, there is no public API for programmatically creating comments and custom notifications on projects.
## Create a project
The examples here use `
ServiceLocator.Current` to access DI container. In "real" code, you should take in the dependencies through a constructor instead.
Create a project and save it.
There are a couple of static events for saving and deleting project and items that can be listened to.
Create project items.
## Access projects
Get a specific project.
List all projects.
Or get a paged list.
Get a specific project item.
List project items
List all project items.
Or get a paged list.
Or only projects of a specific category.
You also can send in a list of content and get all project items that matches that list.
To get the **projectIds** of the currently active projects, use the IProjectResolver.
## Update a project
To change the name of a project.
To update existing project items and/or adding new, just save the changed/new items.
## Delete a project
To delete a project, call **Delete**.
When you delete project item(s), send in the IDs of the items to `
Delete all project items for a project.
## Publish a project
Get a `
Publish a project.
To delay the publishing of a project, use the `
Publish a project without checking access rights, for example in a scheduled job, use a method that takes an `
AccessLevel` and send in `
NoAccess` to skip the access check.
To reactivate a project that was published.
You can publish a subset of a project by sending in a list of project items.
## Work with projects and content
Check if a content item is in a project.
Check if a content item is in a project with any version.
Check if a content item is part of a project.
To get the projects that are connected to a list of content.
ProjectLoaderOptions` to load content with versions found in projects rather than loading the published version.