Interface IEntity
Represents an entity in Content Hub.
Inherited Members
Namespace: StylelabsStylelabs.MSdkStylelabs.M.Sdk.ContractsBase
Assembly: Stylelabs.M.Sdk.dll
Syntax
public interface IEntity : IResource, IDirtyTracking
Properties
Cultures
Gets a list of all cultures that the entity was loaded with. Never returns null. All ICultureSensitiveProperty properties can only contains values for these cultures.
Declaration
IReadOnlyList<CultureInfo> Cultures { get; }
Property Value
Type | Description |
---|---|
IReadOnlyList<>CultureInfo |
DefinitionName
Gets the name of the IEntityDefinition that defines this entity.
Declaration
string DefinitionName { get; }
Property Value
Type | Description |
---|---|
string |
Id
Gets the id of the entity. The id is an automatically assigned, read only, unique and strictly positive number identifying the entity. The id is null if the entity has not been persisted yet.
Declaration
long? Id { get; }
Property Value
Type | Description |
---|---|
long |
Identifier
Gets or sets the identifier of the entity. The identifier can be set on a new entities, until it is persisted. However, it must always be unique. The identifier will be auto generated when it is null when persisting.
Declaration
string Identifier { get; set; }
Property Value
Type | Description |
---|---|
string |
InheritsSecurity
Gets or sets a value indicating whether the entity inherits security from its ancestors connected via relations with InheritsSecurity.
Declaration
bool InheritsSecurity { get; set; }
Property Value
Type | Description |
---|---|
bool |
IsNew
Gets a value indicating whether the entity is new (id is null).
Declaration
bool IsNew { get; }
Property Value
Type | Description |
---|---|
bool |
IsPathRoot
Gets or sets a value indicating whether this entity is a top level path.
Declaration
bool IsPathRoot { get; set; }
Property Value
Type | Description |
---|---|
bool |
See Also
IsRootTaxonomyItem
Gets or sets a value indicating whether this entity is a top level facet.
Declaration
bool IsRootTaxonomyItem { get; set; }
Property Value
Type | Description |
---|---|
bool |
See Also
IsSystemOwned
Gets or sets a value indicating whether the entity is owned by the system and cannot be modified or deleted by the regular users.
Declaration
bool IsSystemOwned { get; set; }
Property Value
Type | Description |
---|---|
bool |
LockedBy
Gets the id of the user who locked this entity. null if it has not been locked.
Declaration
long? LockedBy { get; }
Property Value
Type | Description |
---|---|
long |
LockedOn
Gets the date on which this entity was locked. null if it has not been locked.
Declaration
DateTime? LockedOn { get; }
Property Value
Type | Description |
---|---|
DateTime |
Properties
Gets a list of all properties that are currently loaded on the entity. Never returns null.
Declaration
IReadOnlyList<IProperty> Properties { get; }
Property Value
Type | Description |
---|---|
IReadOnlyList<>IProperty |
Remarks
New properties can still be added by lazy loading them.
RelatedPaths
Gets a list of all related paths for this entity.
Declaration
IReadOnlyList<IRelatedPath> RelatedPaths { get; }
Property Value
Type | Description |
---|---|
IReadOnlyList<>IRelatedPath |
Relations
Gets a list of all relations that are currently loaded on the entity. Never returns null.
Declaration
IReadOnlyList<IRelation> Relations { get; }
Property Value
Type | Description |
---|---|
IReadOnlyList<>IRelation |
Remarks
New relations can still be added by lazy loading them.
Renditions
Gets a list of all renditions for this entity. Never returns null.
Declaration
IReadOnlyList<IRendition> Renditions { get; }
Property Value
Type | Description |
---|---|
IReadOnlyList<>IRendition |
Version
Gets the current version of the entity. Version is a monotonically increasing number (from 1 up). Any change(s) of the entity propagated to the persistent storage will cause this number to be incremented.
Declaration
long Version { get; }
Property Value
Type | Description |
---|---|
long |
Methods
CanDoLazyLoading()
Checks if lazy loading is possible. Lazy loading is only possible on persisted entities.
Declaration
bool CanDoLazyLoading()
Returns
Type | Description |
---|---|
bool |
true if lazy loading is possible. |
GetEntityDefinitionAsync()
Gets the IEntityDefinition of the entity. It is loaded once and will cache the result.
Declaration
Task<IEntityDefinition> GetEntityDefinitionAsync()
Returns
Type | Description |
---|---|
Task<>IEntityDefinition |
The entity definition. |
GetPermissionsAsync()
Gets the permissions that the current user has on this entity.
Declaration
Task<ISet<string>> GetPermissionsAsync()
Returns
Type | Description |
---|---|
Task<>ISet<>string |
A case insensitive set of permissions. |
GetProperty(string)
Gets the specified property. Returns null when the property is not found.
Declaration
IProperty GetProperty(string name)
Parameters
Type | Name | Description |
---|---|---|
string | name |
Property name. |
Returns
Type | Description |
---|---|
IProperty |
The property. |
GetProperty<T>(string)
Gets the specified property. Returns null when the property is not found.
Declaration
T GetProperty<T>(string name) where T : class, IProperty
Parameters
Type | Name | Description |
---|---|---|
string | name |
Property name. |
Returns
Type | Description |
---|---|
T |
The property. |
Type Parameters
Name | Description |
---|---|
T |
The property type. |
GetPropertyAsync(string, MemberLoadOption)
Gets the specified property. Returns null when the property is not found. However, if the property is not present, it can be lazy loaded.
Declaration
Task<IProperty> GetPropertyAsync(string name, MemberLoadOption loadOption = MemberLoadOption.LazyLoading)
Parameters
Type | Name | Description |
---|---|---|
string | name |
Property name. |
MemberLoadOption | loadOption |
Enables (default) or disables lazy loading. |
Returns
Type | Description |
---|---|
Task<>IProperty |
The property. |
GetPropertyAsync<T>(string, MemberLoadOption)
Gets the specified property. Returns null when the property is not found. However, if the property is not present, it can be lazy loaded.
Declaration
Task<T> GetPropertyAsync<T>(string name, MemberLoadOption loadOption = MemberLoadOption.LazyLoading) where T : class, IProperty
Parameters
Type | Name | Description |
---|---|---|
string | name |
Property name. |
MemberLoadOption | loadOption |
Enables (default) or disables lazy loading. |
Returns
Type | Description |
---|---|
Task<> |
The property. |
Type Parameters
Name | Description |
---|---|
T |
Type of the property. |
GetPropertyValue(string, CultureInfo)
Gets the value of the specified culture sensitive property. Returns null when the property is not found.
Declaration
object GetPropertyValue(string name, CultureInfo culture)
Parameters
Type | Name | Description |
---|---|---|
string | name |
Property name. |
CultureInfo | culture |
Property culture. |
Returns
Type | Description |
---|---|
object |
The property. |
GetPropertyValue(string)
Gets the value of the specified culture insensitive property. Returns null when the property is not found.
Declaration
object GetPropertyValue(string name)
Parameters
Type | Name | Description |
---|---|---|
string | name |
Property name. |
Returns
Type | Description |
---|---|
object |
The property. |
GetPropertyValue<T>(string, CultureInfo)
Gets the value of the specified culture sensitive property and casts it to the corresponding type. Returns null when the property is not found.
Declaration
T GetPropertyValue<T>(string name, CultureInfo culture)
Parameters
Type | Name | Description |
---|---|---|
string | name |
Property name. |
CultureInfo | culture |
Property culture. |
Returns
Type | Description |
---|---|
T |
The property. |
Type Parameters
Name | Description |
---|---|
T |
The value type. |
GetPropertyValue<T>(string)
Gets the value of the specified culture insensitive property and casts it to the corresponding type. Returns null when the property is not found.
Declaration
T GetPropertyValue<T>(string name)
Parameters
Type | Name | Description |
---|---|---|
string | name |
Property name. |
Returns
Type | Description |
---|---|
T |
The property. |
Type Parameters
Name | Description |
---|---|
T |
The property type. |
GetPropertyValueAsync(string, MemberLoadOption)
Gets the value of the specified culture insensitive property and casts it to the corresponding type. If the property is not present, it can be lazy loaded.
Declaration
Task<object> GetPropertyValueAsync(string name, MemberLoadOption loadOption = MemberLoadOption.LazyLoading)
Parameters
Type | Name | Description |
---|---|---|
string | name |
Property name. |
MemberLoadOption | loadOption |
Enables (default) or disables lazy loading. |
Returns
Type | Description |
---|---|
Task<>object |
Value of the property. If the property does not exist or is not loaded, it returns null. |
GetPropertyValueAsync<T>(string, CultureInfo, MemberLoadOption)
Gets the value of the specified culture sensitive property and converts it to the corresponding type. If the property is not present, it can be lazy loaded.
Declaration
Task<T> GetPropertyValueAsync<T>(string name, CultureInfo culture, MemberLoadOption loadOption = MemberLoadOption.LazyLoading)
Parameters
Type | Name | Description |
---|---|---|
string | name |
Property name. |
CultureInfo | culture |
Culture of the value. |
MemberLoadOption | loadOption |
Enables (default) or disables lazy loading. |
Returns
Type | Description |
---|---|
Task<> |
Value of the property in specified culture. If the property does not exist or is not loaded, it returns null. |
Type Parameters
Name | Description |
---|---|
T |
Type of the value. |
GetPropertyValueAsync<T>(string, MemberLoadOption)
Gets the value of the specified culture insensitive property and casts it to the corresponding type. If the property is not present, it can be lazy loaded.
Declaration
Task<T> GetPropertyValueAsync<T>(string name, MemberLoadOption loadOption = MemberLoadOption.LazyLoading)
Parameters
Type | Name | Description |
---|---|---|
string | name |
Property name. |
MemberLoadOption | loadOption |
Enables (default) or disables lazy loading. |
Returns
Type | Description |
---|---|
Task<> |
Value of the property. If the property does not exist or is not loaded, it returns null. |
Type Parameters
Name | Description |
---|---|
T |
Type of the value. |
GetRelation(string, RelationRole?)
Gets a relation by name. Returns null when the relation was not found.
Declaration
IRelation GetRelation(string name, RelationRole? role = null)
Parameters
Type | Name | Description |
---|---|---|
string | name |
Name of the relation. |
RelationRole | role |
Role of the relation. |
Returns
Type | Description |
---|---|
IRelation |
The relation. |
GetRelation<T>(string)
Gets a relation by name and tries to resolve the role automatically by the specified interface. Returns null when the relation was not found.
Declaration
T GetRelation<T>(string name) where T : class, IRelation
Parameters
Type | Name | Description |
---|---|---|
string | name |
Name of the relation. |
Returns
Type | Description |
---|---|
T |
The relation. |
Type Parameters
Name | Description |
---|---|
T |
The relation type. |
GetRelationAsync(string, RelationRole?, MemberLoadOption)
Gets the relation from the entity. Returns null when the relation was not found. However, when the relation is not present, it can be lazy loaded.
Declaration
Task<IRelation> GetRelationAsync(string name, RelationRole? role = null, MemberLoadOption loadOption = MemberLoadOption.LazyLoading)
Parameters
Type | Name | Description |
---|---|---|
string | name |
Relation name. |
RelationRole | role |
The role of the relation. |
MemberLoadOption | loadOption |
Enables (default) or disables lazy loading. |
Returns
Type | Description |
---|---|
Task<>IRelation |
The relation or null when it does not exist or is not lazy loaded. |
GetRelationAsync<T>(string, MemberLoadOption)
Gets a relation by name and tries to resolve the role automatically by the specified interface. Returns null when the relation was not found. If the relation is not present, it can be lazy loaded.
Declaration
Task<T> GetRelationAsync<T>(string name, MemberLoadOption loadOption = MemberLoadOption.LazyLoading) where T : class, IRelation
Parameters
Type | Name | Description |
---|---|---|
string | name |
Relation name. |
MemberLoadOption | loadOption |
Enables (default) or disables lazy loading. |
Returns
Type | Description |
---|---|
Task<> |
The relation or null when it does not exist or is not lazy loaded. |
Type Parameters
Name | Description |
---|---|
T |
Type of relation. |
GetRendition(string)
Gets an IRendition by name.
Declaration
IRendition GetRendition(string name)
Parameters
Type | Name | Description |
---|---|---|
string | name |
Name of the rendition. |
Returns
Type | Description |
---|---|
IRendition |
The rendition or null when it does not exist. |
LoadMembersAsync(IPropertyLoadOption, IRelationLoadOption)
Loads the specified members on the current entity. It will only load if it is actually missing members and does not overwrite existing members.
Declaration
Task<bool> LoadMembersAsync(IPropertyLoadOption propertyLoadOption, IRelationLoadOption relationLoadOption)
Parameters
Type | Name | Description |
---|---|---|
IPropertyLoadOption | propertyLoadOption |
Properties to load. |
IRelationLoadOption | relationLoadOption |
Relations to load. |
Returns
Type | Description |
---|---|
Task<>bool |
true if new members were added on the current entity. |
Remarks
Culture sensitive properties will only be loaded in the current cultures. Lazy loading is only possible on entities that are not new.
LoadPropertiesAsync(IPropertyLoadOption)
Loads the specified properties on the current entity. It will only load if it is actually missing properties and does not overwrite existing properties.
Declaration
Task<bool> LoadPropertiesAsync(IPropertyLoadOption propertyLoadOption)
Parameters
Type | Name | Description |
---|---|---|
IPropertyLoadOption | propertyLoadOption |
Properties to load. |
Returns
Type | Description |
---|---|
Task<>bool |
true if new properties were added on the current entity. |
Remarks
Culture sensitive properties will only be loaded in the current cultures. Lazy loading is only possible on entities that are not new.
LoadRelationsAsync(IRelationLoadOption)
Loads the specified relations on the current entity. It will only load if it is actually missing relations and does not overwrite existing relations.
Declaration
Task<bool> LoadRelationsAsync(IRelationLoadOption relationLoadOption)
Parameters
Type | Name | Description |
---|---|---|
IRelationLoadOption | relationLoadOption |
Relations to load. |
Returns
Type | Description |
---|---|
Task<>bool |
true if new members were added on the current entity. |
Remarks
Lazy loading is only possible on entities that are not new.
SetPropertyValue(string, CultureInfo, object)
Sets the value of specified culture sensitive property.
Declaration
void SetPropertyValue(string name, CultureInfo culture, object value)
Parameters
Type | Name | Description |
---|---|---|
string | name |
Property name. |
CultureInfo | culture |
Culture of the value. |
object | value |
Property value. |
Exceptions
Type | Condition |
---|---|
PropertyNotFoundException |
When the property does not exist or was not loaded. |
SetPropertyValue(string, object)
Sets the value of specified culture insensitive property.
Declaration
void SetPropertyValue(string name, object value)
Parameters
Type | Name | Description |
---|---|---|
string | name |
Property name. |
object | value |
Property value. |
Exceptions
Type | Condition |
---|---|
PropertyNotFoundException |
When the property does not exist or was not loaded. |