1. Stylelabs.M.Sdk.Contracts.Base

Interface IEntity

Represents an entity in Content Hub.

Inherited Members

IResource.CreatedBy

IResource.CreatedOn

IResource.ModifiedBy

IResource.ModifiedOn

IDirtyTracking.IsTracking

IDirtyTracking.IsDirty

IDirtyTracking.StartTracking()

IDirtyTracking.MarkClean()

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

TypeDescription
IReadOnlyList<>CultureInfo

DefinitionName

Gets the name of the IEntityDefinition that defines this entity.

Declaration

string DefinitionName { get; }

Property Value

TypeDescription
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

TypeDescription
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

TypeDescription
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

TypeDescription
bool

IsNew

Gets a value indicating whether the entity is new (id is null).

Declaration

bool IsNew { get; }

Property Value

TypeDescription
bool

IsPathRoot

Gets or sets a value indicating whether this entity is a top level path.

Declaration

bool IsPathRoot { get; set; }

Property Value

TypeDescription
bool

See Also

IsPathEnabledDefinition

IsRootTaxonomyItem

Gets or sets a value indicating whether this entity is a top level facet.

Declaration

bool IsRootTaxonomyItem { get; set; }

Property Value

TypeDescription
bool

See Also

IsTaxonomyItemDefinition

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

TypeDescription
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

TypeDescription
long

LockedOn

Gets the date on which this entity was locked. null if it has not been locked.

Declaration

DateTime? LockedOn { get; }

Property Value

TypeDescription
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

TypeDescription
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

TypeDescription
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

TypeDescription
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

TypeDescription
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

TypeDescription
long

Methods

CanDoLazyLoading()

Checks if lazy loading is possible. Lazy loading is only possible on persisted entities.

Declaration

bool CanDoLazyLoading()

Returns

TypeDescription
booltrue 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

TypeDescription
Task<>IEntityDefinitionThe entity definition.

GetPermissionsAsync()

Gets the permissions that the current user has on this entity.

Declaration

Task<ISet<string>> GetPermissionsAsync()

Returns

TypeDescription
Task<>ISet<>stringA 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

TypeNameDescription
stringnameProperty name.

Returns

TypeDescription
IPropertyThe property.

GetProperty(string)

Gets the specified property. Returns null when the property is not found.

Declaration

T GetProperty<T>(string name) where T : class, IProperty

Parameters

TypeNameDescription
stringnameProperty name.

Returns

TypeDescription
TThe property.

Type Parameters

NameDescription
TThe 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

TypeNameDescription
stringnameProperty name.
MemberLoadOptionloadOptionEnables (default) or disables lazy loading.

Returns

TypeDescription
Task<>IPropertyThe property.

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<T> GetPropertyAsync<T>(string name, MemberLoadOption loadOption = MemberLoadOption.LazyLoading) where T : class, IProperty

Parameters

TypeNameDescription
stringnameProperty name.
MemberLoadOptionloadOptionEnables (default) or disables lazy loading.

Returns

TypeDescription
Task<>The property.

Type Parameters

NameDescription
TType 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

TypeNameDescription
stringnameProperty name.
CultureInfocultureProperty culture.

Returns

TypeDescription
objectThe 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

TypeNameDescription
stringnameProperty name.

Returns

TypeDescription
objectThe property.

GetPropertyValue(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

TypeNameDescription
stringnameProperty name.
CultureInfocultureProperty culture.

Returns

TypeDescription
TThe property.

Type Parameters

NameDescription
TThe value type.

GetPropertyValue(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

TypeNameDescription
stringnameProperty name.

Returns

TypeDescription
TThe property.

Type Parameters

NameDescription
TThe 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

TypeNameDescription
stringnameProperty name.
MemberLoadOptionloadOptionEnables (default) or disables lazy loading.

Returns

TypeDescription
Task<>objectValue of the property. If the property does not exist or is not loaded, it returns null.

GetPropertyValueAsync(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

TypeNameDescription
stringnameProperty name.
CultureInfocultureCulture of the value.
MemberLoadOptionloadOptionEnables (default) or disables lazy loading.

Returns

TypeDescription
Task<>Value of the property in specified culture. If the property does not exist or is not loaded, it returns null.

Type Parameters

NameDescription
TType of the value.

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<T> GetPropertyValueAsync<T>(string name, MemberLoadOption loadOption = MemberLoadOption.LazyLoading)

Parameters

TypeNameDescription
stringnameProperty name.
MemberLoadOptionloadOptionEnables (default) or disables lazy loading.

Returns

TypeDescription
Task<>Value of the property. If the property does not exist or is not loaded, it returns null.

Type Parameters

NameDescription
TType 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

TypeNameDescription
stringnameName of the relation.
RelationRoleroleRole of the relation.

Returns

TypeDescription
IRelationThe relation.

GetRelation(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

TypeNameDescription
stringnameName of the relation.

Returns

TypeDescription
TThe relation.

Type Parameters

NameDescription
TThe 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

TypeNameDescription
stringnameRelation name.
RelationRoleroleThe role of the relation.
MemberLoadOptionloadOptionEnables (default) or disables lazy loading.

Returns

TypeDescription
Task<>IRelationThe relation or null when it does not exist or is not lazy loaded.

GetRelationAsync(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

TypeNameDescription
stringnameRelation name.
MemberLoadOptionloadOptionEnables (default) or disables lazy loading.

Returns

TypeDescription
Task<>The relation or null when it does not exist or is not lazy loaded.

Type Parameters

NameDescription
TType of relation.

GetRendition(string)

Gets an IRendition by name.

Declaration

IRendition GetRendition(string name)

Parameters

TypeNameDescription
stringnameName of the rendition.

Returns

TypeDescription
IRenditionThe 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

TypeNameDescription
IPropertyLoadOptionpropertyLoadOptionProperties to load.
IRelationLoadOptionrelationLoadOptionRelations to load.

Returns

TypeDescription
Task<>booltrue 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

TypeNameDescription
IPropertyLoadOptionpropertyLoadOptionProperties to load.

Returns

TypeDescription
Task<>booltrue 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

TypeNameDescription
IRelationLoadOptionrelationLoadOptionRelations to load.

Returns

TypeDescription
Task<>booltrue 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

TypeNameDescription
stringnameProperty name.
CultureInfocultureCulture of the value.
objectvalueProperty value.

Exceptions

TypeCondition
PropertyNotFoundExceptionWhen 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

TypeNameDescription
stringnameProperty name.
objectvalueProperty value.

Exceptions

TypeCondition
PropertyNotFoundExceptionWhen the property does not exist or was not loaded.
If you have suggestions for improving this article, let us know!