updates especially when deleting one since we require all sorts of Ids from the object but the object will be deleted by the time
the request reaches other servers so instead we create a json payload to send to other servers which contains all information necessary
to refresh/clear the cache on the other servers. This will probably be the preferred way going forward to handle cache refreshing.
With this in place, when removing a conent type cache is removed based on events.
This also adds a 'class' generic argument constraint to the repository base classes to guarantee we can do null checks and then we also
fix a null check on RepositoryBase. Updates the Entity class to properly support tracking properties - this now allows us to determine if
an entity was new, which is now used to ensure we don't re-update all of the content cache when a new content type is created.
Have also changed the deletion and creation of document types to use the new API, this allows for a lot less processing and streamlining how
all cache is invalidated. Fixes the construction of a new Template and Content Type in the v6 api and ensures that default values are set - #U4-1972, #U4-1971
tracking changes works the way it is supposed to. Creates a TracksChangesEntityBase class for any other entity
that wants to implement IRememberBeingDirty (now Entity inherits from this). Upgraded a bunch of other entities that
were not tracking changes properly.
Adds internal property and tracks it's dirty changes to the ContentTypeBase - HasPropertyBeenRemoved.
Fixes: #U4-1942 - ensures content xml cache is refreshed even across servers when a property is removed or when the alias is changed.
refresh content cache (and fix the unpublishing too since that logic wasn't correct)
Adds DebuggerDisplay support to ContentBase and Entity for better debugging info.
Adds new internal publishing methods to support publishing all children or only children previously published. This also adds new support
for getting a published result back even with bulk publishing.
Updates the publish dialog with new code and to use the new API based on issue #U4-1669.
Adds UmbracoUser property to AuthenticatedUmbracoController, Adds all common properties to the abstract UmbracoController.
Changes the legacy Document to allow content cache to be automatically refreshed (based on events)
Moved getting an IProfile to an extension method, as its not commonly used.
Removing dependencies in ContentService, so the Services and context can be moved to Core proj.
Implementing Template repository to use both filesystem and db.
Adding the PropertyEditor model as internal to slowly adopt it using a slightly different model approach then in v5.
Minor refactoring of IEntity/Entity.
Adding some notes and small change to IContentBase, PropertyValues and the ability to set property values with an anonymous object is shared for Content and Media.
Adding PropertyGroup and PropertyGroupCollection classes U4-926.
Adding PropertyType and PropertyTypeCollection classes U4-925.
Adding DataTypeDefinition and DataTypeDatabaseType U4-927.
Had to update the Property ref. on page and DynamicDocumentExtensions because of a conflict with the new Property class.