Cofoundry is an extensible and flexible .NET Core CMS & application framework focusing on code first development
IApiController
methods now returns JsonResult
instead of IActionResult
IApiController
methods no longer require a Controller
parameter[Date]
annotation now captures UTC time instead of local time. To capture local time use the [DateLocal]
data annotation instead.[CustomEntityMultiTypeCollection]
data annotation.See the announcement blog post for full details.
In addition to bug fixes, this release updates the ASP.NET Core packages to 2.2.1.
In doing this I renamed LogAuthenticatedUserInCommand
to LogSuccessfulLoginCommand
because the old name was misleading. This is only used internally and shouldn't cause a breaking change for developers.
UriParse
helper has been renamed HttpUriParser
to better describe it's scope as it only parses http base uris.IPageBlockTypeDisplayModelMapper<TDataModel>
has been updated to make mapping simpler (see release blog post for detailed explainaton)AdminRouteAttribute
has been removed. Please register your routes via methods in Cofoundry.Web.Admin.AdminRouteBuilderExtentionsCofoundry:ImageAssets:EnableCompatibilityRoutesFor0_4
or Cofoundry:DocumentAssets:EnableCompatibilityRoutesFor0_4
Cofoundry:AutoUpdate:IsDisabled
is now Cofoundry:AutoUpdate:Disabled
NotDangerousFileExtensionAttribute
and NotDangerousMimeTypeAttribute
removed and replaced with IAssetFileValidator
that is now configurable.Due to a tagging mishap, v0.4 was skipped. Please use 0.4.1 instead.
ApiResponseHelper.SimpleQueryResponse
now returns a 404 status code if the result is null.IEntityFrameworkSqlExecutor
: All sync operations have been removedPropertyBuilderExtensions
has been moved to Cofoundry.Core.EntityFramework
namespace.IDatabase
is no longer injected, use ICofoundryDatabase
.ModelBuilder.UseDefaultConfig
has been replaced with HasAppSchema
because since the migration to EF Core no other configuration was being performed here other than setting the default schema.IOrderableCustomEntityDefinition
and ICustomizedTermCustomEntityDefinition
. Use the non-generic versions instead alongside the generic ICustomEntityDefinition<TDataModel>
. The generic versions were a shortcut, but I think it's better to be explicit here so we don't have multiple ways of doing things which can be confusing.VisualEditorMode
has been moved from the Cofoundry.Web
project to the Cofoundry.Domain
project.VisualEditorMode.Draft
has been renamed VisualEditorMode.Preview
SortDirection
naming has been changed from Ascending/Descending to be Default/Resversed to better describe the behaviour, this is because for publish/create date sorting the default behaviour is latest first which is not technically ascending ordering.CustomEntityDetails
, CustomEntitySummary
: HasDraft
property has been renamed HasDraftVersion
, IsPublished
property replaced with IPublishableEntity.IsPublished()
to be consistent with similar classes.GetCustomEntitySummariesByIdRangeQuery
no longer accepts PublishStatusQuery
filtering, ensuring consistency with other uses of CustomEntitySummary
and PageSummary
. For an equivalent publish-status-aware query, use GetCustomEntityRenderSummariesByIdRangeQuery
OpenGraphData.Image
has been changed from an ImageAssetSummary
to an ImageAssetRenderDetails
object.PageRepository.GetPageSummariesByPageIdAsync
was named incorrectly and has been renamed PageRepository.GetPageSummariesByIdRangeAsync
AddCustomEntityVersionPageBlockCommand
: PageTemplateId
property has been removed and PageId
has been added in it's place.IQueryable<CustomEntityVersion>.FilterByActive
has been renamed `FilterActive for consistency with similar methods.IQueryable<CustomEntityPublishStatusQuery>.FilterByActive
has been renamed FilterActive()
for consistency with similar methods.IOrderableCustomEntityDefinition
is now by Title. You can change this by implementing ISortedCustomEntityDefinition
on your custom entity definition.