Class TypedEntityProxyBase

Proxies all entity properties and methods to the underlying entity.

Inheritance
object
TypedEntityProxyBase
Namespace: StylelabsStylelabs.MSdkStylelabs.M.Sdk.ModelsTyped
Assembly: Stylelabs.M.Sdk.dll
Syntax
RequestResponse
public abstract class TypedEntityProxyBase : ITypedEntity, IEntity, IResource, IDirtyTracking

Constructors

TypedEntityProxyBase(IEntity, IMClient)

Initializes a new instance of the TypedEntityProxyBase class.

Declaration
RequestResponse
protected TypedEntityProxyBase(IEntity entity, IMClient client)
Parameters
TypeNameDescription
IEntityentity

The entity.

IMClientclient

The client.

Properties

__Client

Gets the client. Provides access to the IMClient instance.

Declaration
RequestResponse
protected IMClient __Client { get; }
Property Value
TypeDescription
IMClient

__EntityWrapper

Gets the entity mapper. Provides access to a managed wrapper for entity operations.

Declaration
RequestResponse
protected TypedEntityWrapper __EntityWrapper { get; }
Property Value
TypeDescription
TypedEntityWrapper

CreatedBy

Gets the id of the user who created this resource. null if it has not been created.

Declaration
RequestResponse
public long? CreatedBy { get; }
Property Value
TypeDescription
long

CreatedOn

Gets the date on which this resource was created. null if it has not been created.

Declaration
RequestResponse
public DateTime? CreatedOn { get; }
Property Value
TypeDescription
DateTime

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
RequestResponse
public IReadOnlyList<CultureInfo> Cultures { get; }
Property Value
TypeDescription
IReadOnlyList<>CultureInfo

DefinitionName

Gets the name of the IEntityDefinition that defines this entity.

Declaration
RequestResponse
public 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
RequestResponse
public 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
RequestResponse
public 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
RequestResponse
public bool InheritsSecurity { get; set; }
Property Value
TypeDescription
bool

IsDirty

Gets a value indicating whether the object has unsaved changes.

Declaration
RequestResponse
public bool IsDirty { get; }
Property Value
TypeDescription
bool

IsNew

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

Declaration
RequestResponse
public bool IsNew { get; }
Property Value
TypeDescription
bool

IsPathRoot

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

Declaration
RequestResponse
public bool IsPathRoot { get; set; }
Property Value
TypeDescription
bool
See Also

IsRootTaxonomyItem

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

Declaration
RequestResponse
public bool IsRootTaxonomyItem { get; set; }
Property Value
TypeDescription
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
RequestResponse
public bool IsSystemOwned { get; set; }
Property Value
TypeDescription
bool

IsTracking

Gets a value indicating whether the object is tracking changes.

Declaration
RequestResponse
public bool IsTracking { get; }
Property Value
TypeDescription
bool

LockedBy

Gets the id of the user who locked this entity. null if it has not been locked.

Declaration
RequestResponse
public 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
RequestResponse
public DateTime? LockedOn { get; }
Property Value
TypeDescription
DateTime

ModifiedBy

Gets the id of the user who modified this resource. null if it has not been created.

Declaration
RequestResponse
public long? ModifiedBy { get; }
Property Value
TypeDescription
long

ModifiedOn

Gets the date on which this resource was modified. null if it has not been created.

Declaration
RequestResponse
public DateTime? ModifiedOn { get; }
Property Value
TypeDescription
DateTime

Properties

Gets a list of all properties that are currently loaded on the entity. Never returns null.

Declaration
RequestResponse
public 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
RequestResponse
public 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
RequestResponse
public 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
RequestResponse
public 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
RequestResponse
public long Version { get; }
Property Value
TypeDescription
long

Methods

CanDoLazyLoading()

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

Declaration
RequestResponse
public bool CanDoLazyLoading()
Returns
TypeDescription
bool

true if lazy loading is possible.

GetEntityDefinitionAsync()

Gets the IEntityDefinition of the entity. It is loaded once and will cache the result.

Declaration
RequestResponse
public Task<IEntityDefinition> GetEntityDefinitionAsync()
Returns
TypeDescription
Task<>IEntityDefinition

The entity definition.

GetPermissionsAsync()

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

Declaration
RequestResponse
public Task<ISet<string>> GetPermissionsAsync()
Returns
TypeDescription
Task<>ISet<>string

A case insensitive set of permissions.

GetProperty(string)

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

Declaration
RequestResponse
public IProperty GetProperty(string name)
Parameters
TypeNameDescription
stringname

Property name.

Returns
TypeDescription
IProperty

The property.

GetProperty<T>(string)

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

Declaration
RequestResponse
public T GetProperty<T>(string name) where T : class, IProperty
Parameters
TypeNameDescription
stringname

Property name.

Returns
TypeDescription
T

The property.

Type Parameters
NameDescription
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
RequestResponse
public Task<IProperty> GetPropertyAsync(string name, MemberLoadOption loadOption = MemberLoadOption.LazyLoading)
Parameters
TypeNameDescription
stringname

Property name.

MemberLoadOptionloadOption

Enables (default) or disables lazy loading.

Returns
TypeDescription
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
RequestResponse
public Task<T> GetPropertyAsync<T>(string name, MemberLoadOption loadOption = MemberLoadOption.LazyLoading) where T : class, IProperty
Parameters
TypeNameDescription
stringname

Property name.

MemberLoadOptionloadOption

Enables (default) or disables lazy loading.

Returns
TypeDescription
Task<>

The property.

Type Parameters
NameDescription
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
RequestResponse
public object GetPropertyValue(string name, CultureInfo culture)
Parameters
TypeNameDescription
stringname

Property name.

CultureInfoculture

Property culture.

Returns
TypeDescription
object

The property.

GetPropertyValue(string)

Gets the value of the specified culture insensitive property. Returns null when the property is not found.

Declaration
RequestResponse
public object GetPropertyValue(string name)
Parameters
TypeNameDescription
stringname

Property name.

Returns
TypeDescription
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
RequestResponse
public T GetPropertyValue<T>(string name, CultureInfo culture)
Parameters
TypeNameDescription
stringname

Property name.

CultureInfoculture

Property culture.

Returns
TypeDescription
T

The property.

Type Parameters
NameDescription
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
RequestResponse
public T GetPropertyValue<T>(string name)
Parameters
TypeNameDescription
stringname

Property name.

Returns
TypeDescription
T

The property.

Type Parameters
NameDescription
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
RequestResponse
public Task<object> GetPropertyValueAsync(string name, MemberLoadOption loadOption = MemberLoadOption.LazyLoading)
Parameters
TypeNameDescription
stringname

Property name.

MemberLoadOptionloadOption

Enables (default) or disables lazy loading.

Returns
TypeDescription
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
RequestResponse
public Task<T> GetPropertyValueAsync<T>(string name, CultureInfo culture, MemberLoadOption loadOption = MemberLoadOption.LazyLoading)
Parameters
TypeNameDescription
stringname

Property name.

CultureInfoculture

Culture of the value.

MemberLoadOptionloadOption

Enables (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
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
RequestResponse
public Task<T> GetPropertyValueAsync<T>(string name, MemberLoadOption loadOption = MemberLoadOption.LazyLoading)
Parameters
TypeNameDescription
stringname

Property name.

MemberLoadOptionloadOption

Enables (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
T

Type of the value.

GetRelation(string, RelationRole?)

Gets a relation by name. Returns null when the relation was not found.

Declaration
RequestResponse
public IRelation GetRelation(string name, RelationRole? role = null)
Parameters
TypeNameDescription
stringname

Name of the relation.

RelationRolerole

Role of the relation.

Returns
TypeDescription
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
RequestResponse
public T GetRelation<T>(string name) where T : class, IRelation
Parameters
TypeNameDescription
stringname

Name of the relation.

Returns
TypeDescription
T

The relation.

Type Parameters
NameDescription
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
RequestResponse
public Task<IRelation> GetRelationAsync(string name, RelationRole? role = null, MemberLoadOption loadOption = MemberLoadOption.LazyLoading)
Parameters
TypeNameDescription
stringname

Relation name.

RelationRolerole

The role of the relation.

MemberLoadOptionloadOption

Enables (default) or disables lazy loading.

Returns
TypeDescription
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
RequestResponse
public Task<T> GetRelationAsync<T>(string name, MemberLoadOption loadOption = MemberLoadOption.LazyLoading) where T : class, IRelation
Parameters
TypeNameDescription
stringname

Relation name.

MemberLoadOptionloadOption

Enables (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
T

Type of relation.

GetRendition(string)

Gets an IRendition by name.

Declaration
RequestResponse
public IRendition GetRendition(string name)
Parameters
TypeNameDescription
stringname

Name of the rendition.

Returns
TypeDescription
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
RequestResponse
public Task<bool> LoadMembersAsync(IPropertyLoadOption propertyLoadOption, IRelationLoadOption relationLoadOption)
Parameters
TypeNameDescription
IPropertyLoadOptionpropertyLoadOption

Properties to load.

IRelationLoadOptionrelationLoadOption

Relations to load.

Returns
TypeDescription
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
RequestResponse
public Task<bool> LoadPropertiesAsync(IPropertyLoadOption propertyLoadOption)
Parameters
TypeNameDescription
IPropertyLoadOptionpropertyLoadOption

Properties to load.

Returns
TypeDescription
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
RequestResponse
public Task<bool> LoadRelationsAsync(IRelationLoadOption relationLoadOption)
Parameters
TypeNameDescription
IRelationLoadOptionrelationLoadOption

Relations to load.

Returns
TypeDescription
Task<>bool

true if new members were added on the current entity.

Remarks

Lazy loading is only possible on entities that are not new.

LoadTypedMembersAsync()

Ensures that the members provided by the strongly typed class are loaded. To be used in combination with CanDoLazyLoading(). Note that this will only load culture sensitive properties in the cultures that the entity was initially loaded with.

Declaration
RequestResponse
public Task LoadTypedMembersAsync()
Returns
TypeDescription
Task

An awaitable .

See Also

MarkClean()

Marks the object as clean. This will set IsDirty to false.

Declaration
RequestResponse
public void MarkClean()

SetPropertyValue(string, CultureInfo, object)

Sets the value of specified culture sensitive property.

Declaration
RequestResponse
public void SetPropertyValue(string name, CultureInfo culture, object value)
Parameters
TypeNameDescription
stringname

Property name.

CultureInfoculture

Culture of the value.

objectvalue

Property value.

Exceptions
TypeCondition
PropertyNotFoundException

When the property does not exist or was not loaded.

SetPropertyValue(string, object)

Sets the value of specified culture insensitive property.

Declaration
RequestResponse
public void SetPropertyValue(string name, object value)
Parameters
TypeNameDescription
stringname

Property name.

objectvalue

Property value.

Exceptions
TypeCondition
PropertyNotFoundException

When the property does not exist or was not loaded.

StartTracking()

Starts tracking the object for changes.

Declaration
RequestResponse
public void StartTracking()

Implements

Do you have some feedback for us?

If you have suggestions for improving this article,