Interface IRelationService
Namespace: Umbraco.Cms.Core.Services
Assembly: Umbraco.Core.dll
Syntax
public interface IRelationService : IService
Methods
View SourceAreRelated(int, int)
Checks whether two items are related
Declaration
bool AreRelated(int parentId, int childId)
Parameters
| Type | Name | Description |
|---|---|---|
| int | parentId | Id of the Parent relation |
| int | childId | Id of the Child relation |
Returns
| Type | Description |
|---|---|
| bool | Returns |
AreRelated(int, int, string)
Checks whether two items are related
Declaration
bool AreRelated(int parentId, int childId, string relationTypeAlias)
Parameters
| Type | Name | Description |
|---|---|---|
| int | parentId | Id of the Parent relation |
| int | childId | Id of the Child relation |
| string | relationTypeAlias | Alias of the type of relation to create |
Returns
| Type | Description |
|---|---|
| bool | Returns |
AreRelated(IUmbracoEntity, IUmbracoEntity)
Checks whether two items are related
Declaration
bool AreRelated(IUmbracoEntity parent, IUmbracoEntity child)
Parameters
| Type | Name | Description |
|---|---|---|
| IUmbracoEntity | parent | Parent entity |
| IUmbracoEntity | child | Child entity |
Returns
| Type | Description |
|---|---|
| bool | Returns |
AreRelated(IUmbracoEntity, IUmbracoEntity, string)
Checks whether two items are related
Declaration
bool AreRelated(IUmbracoEntity parent, IUmbracoEntity child, string relationTypeAlias)
Parameters
| Type | Name | Description |
|---|---|---|
| IUmbracoEntity | parent | Parent entity |
| IUmbracoEntity | child | Child entity |
| string | relationTypeAlias | Alias of the type of relation to create |
Returns
| Type | Description |
|---|---|
| bool | Returns |
CountRelationTypes()
Declaration
int CountRelationTypes()
Returns
| Type | Description |
|---|---|
| int |
CreateAsync(IRelationType, Guid)
Saves a IRelationType
Declaration
Task<Attempt<IRelationType, RelationTypeOperationStatus>> CreateAsync(IRelationType relationType, Guid userKey)
Parameters
| Type | Name | Description |
|---|---|---|
| IRelationType | relationType | RelationType to Save |
| Guid | userKey | Key of the user thats saving the relation type |
Returns
| Type | Description |
|---|---|
| Task<Attempt<IRelationType, RelationTypeOperationStatus>> | A Attempt with a status of whether the operations was a success or failure |
Delete(IRelation)
Deletes a IRelation
Declaration
void Delete(IRelation relation)
Parameters
| Type | Name | Description |
|---|---|---|
| IRelation | relation | Relation to Delete |
Delete(IRelationType)
Deletes a IRelationType
Declaration
void Delete(IRelationType relationType)
Parameters
| Type | Name | Description |
|---|---|---|
| IRelationType | relationType | RelationType to Delete |
DeleteAsync(Guid, Guid)
Deletes a IRelationType
Declaration
Task<Attempt<IRelationType?, RelationTypeOperationStatus>> DeleteAsync(Guid key, Guid userKey)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | key | Key of the relation type to delete |
| Guid | userKey | Key of the user that is deleting the relation type |
Returns
| Type | Description |
|---|---|
| Task<Attempt<IRelationType, RelationTypeOperationStatus>> |
DeleteRelationsOfType(IRelationType)
Deletes all IRelation objects based on the passed in IRelationType
Declaration
void DeleteRelationsOfType(IRelationType relationType)
Parameters
| Type | Name | Description |
|---|---|---|
| IRelationType | relationType | IRelationType to Delete Relations for |
GetAllRelationTypes(params int[])
Gets all IRelation objects
Declaration
IEnumerable<IRelationType> GetAllRelationTypes(params int[] ids)
Parameters
| Type | Name | Description |
|---|---|---|
| int[] | ids | Optional array of integer ids to return relationtypes for |
Returns
| Type | Description |
|---|---|
| IEnumerable<IRelationType> | An enumerable list of IRelation objects |
GetAllRelations(params int[])
Gets all IRelation objects
Declaration
IEnumerable<IRelation> GetAllRelations(params int[] ids)
Parameters
| Type | Name | Description |
|---|---|---|
| int[] | ids | Optional array of integer ids to return relations for |
Returns
| Type | Description |
|---|---|
| IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetAllRelationsByRelationType(int)
Gets all IRelation objects by their IRelationType's Id
Declaration
IEnumerable<IRelation>? GetAllRelationsByRelationType(int relationTypeId)
Parameters
| Type | Name | Description |
|---|---|---|
| int | relationTypeId | Id of the IRelationType to retrieve Relations for |
Returns
| Type | Description |
|---|---|
| IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetAllRelationsByRelationType(IRelationType)
Gets all IRelation objects by their IRelationType
Declaration
IEnumerable<IRelation>? GetAllRelationsByRelationType(IRelationType relationType)
Parameters
| Type | Name | Description |
|---|---|---|
| IRelationType | relationType | IRelation to retrieve Relations for |
Returns
| Type | Description |
|---|---|
| IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetAllowedObjectTypes()
Gets all allowed parent/child object types for a given IRelationType />
Declaration
IEnumerable<UmbracoObjectTypes> GetAllowedObjectTypes()
Returns
| Type | Description |
|---|---|
| IEnumerable<UmbracoObjectTypes> | All of the allowed UmbracoObjectTypes. |
GetByChild(IUmbracoEntity)
Gets a list of IRelation objects by their child Entity
Declaration
IEnumerable<IRelation> GetByChild(IUmbracoEntity child)
Parameters
| Type | Name | Description |
|---|---|---|
| IUmbracoEntity | child | Child Entity to retrieve relations for |
Returns
| Type | Description |
|---|---|
| IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetByChild(IUmbracoEntity, string)
Gets a list of IRelation objects by their child Entity
Declaration
IEnumerable<IRelation> GetByChild(IUmbracoEntity child, string relationTypeAlias)
Parameters
| Type | Name | Description |
|---|---|---|
| IUmbracoEntity | child | Child Entity to retrieve relations for |
| string | relationTypeAlias | Alias of the type of relation to retrieve |
Returns
| Type | Description |
|---|---|
| IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetByChildId(int)
Gets a list of IRelation objects by their child Id
Declaration
IEnumerable<IRelation> GetByChildId(int id)
Parameters
| Type | Name | Description |
|---|---|---|
| int | id | Id of the child to retrieve relations for |
Returns
| Type | Description |
|---|---|
| IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetByChildId(int, string)
Gets a list of IRelation objects by their child Id
Declaration
IEnumerable<IRelation> GetByChildId(int id, string relationTypeAlias)
Parameters
| Type | Name | Description |
|---|---|---|
| int | id | Id of the child to retrieve relations for |
| string | relationTypeAlias | Alias of the type of relation to retrieve |
Returns
| Type | Description |
|---|---|
| IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetById(int)
Gets a IRelation by its Id
Declaration
IRelation? GetById(int id)
Parameters
| Type | Name | Description |
|---|---|---|
| int | id | Id of the IRelation |
Returns
| Type | Description |
|---|---|
| IRelation | A IRelation object |
GetByParent(IUmbracoEntity)
Gets a list of IRelation objects by their parent entity
Declaration
IEnumerable<IRelation>? GetByParent(IUmbracoEntity parent)
Parameters
| Type | Name | Description |
|---|---|---|
| IUmbracoEntity | parent | Parent Entity to retrieve relations for |
Returns
| Type | Description |
|---|---|
| IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetByParent(IUmbracoEntity, string)
Gets a list of IRelation objects by their parent entity
Declaration
IEnumerable<IRelation> GetByParent(IUmbracoEntity parent, string relationTypeAlias)
Parameters
| Type | Name | Description |
|---|---|---|
| IUmbracoEntity | parent | Parent Entity to retrieve relations for |
| string | relationTypeAlias | Alias of the type of relation to retrieve |
Returns
| Type | Description |
|---|---|
| IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetByParentAndChildId(int, int, IRelationType)
Gets a relation by the unique combination of parentId, childId and relationType.
Declaration
IRelation? GetByParentAndChildId(int parentId, int childId, IRelationType relationType)
Parameters
| Type | Name | Description |
|---|---|---|
| int | parentId | The id of the parent item. |
| int | childId | The id of the child item. |
| IRelationType | relationType | The RelationType. |
Returns
| Type | Description |
|---|---|
| IRelation | The relation or null |
GetByParentId(int)
Gets a list of IRelation objects by their parent Id
Declaration
IEnumerable<IRelation>? GetByParentId(int id)
Parameters
| Type | Name | Description |
|---|---|---|
| int | id | Id of the parent to retrieve relations for |
Returns
| Type | Description |
|---|---|
| IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetByParentId(int, string)
Gets a list of IRelation objects by their parent Id
Declaration
IEnumerable<IRelation>? GetByParentId(int id, string relationTypeAlias)
Parameters
| Type | Name | Description |
|---|---|---|
| int | id | Id of the parent to retrieve relations for |
| string | relationTypeAlias | Alias of the type of relation to retrieve |
Returns
| Type | Description |
|---|---|
| IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetByParentOrChildId(int)
Gets a list of IRelation objects by their child or parent Id. Using this method will get you all relations regards of it being a child or parent relation.
Declaration
IEnumerable<IRelation> GetByParentOrChildId(int id)
Parameters
| Type | Name | Description |
|---|---|---|
| int | id | Id of the child or parent to retrieve relations for |
Returns
| Type | Description |
|---|---|
| IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetByParentOrChildId(int, string)
Declaration
IEnumerable<IRelation> GetByParentOrChildId(int id, string relationTypeAlias)
Parameters
| Type | Name | Description |
|---|---|---|
| int | id | |
| string | relationTypeAlias |
Returns
| Type | Description |
|---|---|
| IEnumerable<IRelation> |
GetByRelationTypeAlias(string)
Gets a list of IRelation objects by the Alias of the IRelationType
Declaration
IEnumerable<IRelation> GetByRelationTypeAlias(string relationTypeAlias)
Parameters
| Type | Name | Description |
|---|---|---|
| string | relationTypeAlias | Alias of the IRelationType to retrieve Relations for |
Returns
| Type | Description |
|---|---|
| IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetByRelationTypeId(int)
Gets a list of IRelation objects by the Id of the IRelationType
Declaration
IEnumerable<IRelation>? GetByRelationTypeId(int relationTypeId)
Parameters
| Type | Name | Description |
|---|---|---|
| int | relationTypeId | Id of the IRelationType to retrieve Relations for |
Returns
| Type | Description |
|---|---|
| IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetByRelationTypeName(string)
Gets a list of IRelation objects by the Name of the IRelationType
Declaration
IEnumerable<IRelation> GetByRelationTypeName(string relationTypeName)
Parameters
| Type | Name | Description |
|---|---|---|
| string | relationTypeName | Name of the IRelationType to retrieve Relations for |
Returns
| Type | Description |
|---|---|
| IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetChildEntitiesFromRelations(IEnumerable<IRelation>)
Gets the Child objects from a list of Relations as a list of IUmbracoEntity objects.
Declaration
IEnumerable<IUmbracoEntity> GetChildEntitiesFromRelations(IEnumerable<IRelation> relations)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<IRelation> | relations | List of relations to retrieve child objects from |
Returns
| Type | Description |
|---|---|
| IEnumerable<IUmbracoEntity> | An enumerable list of IUmbracoEntity |
GetChildEntityFromRelation(IRelation)
Gets the Child object from a Relation as an IUmbracoEntity
Declaration
IUmbracoEntity? GetChildEntityFromRelation(IRelation relation)
Parameters
| Type | Name | Description |
|---|---|---|
| IRelation | relation | Relation to retrieve child object from |
Returns
| Type | Description |
|---|---|
| IUmbracoEntity |
GetEntitiesFromRelation(IRelation)
Gets the Parent and Child objects from a Relation as a System.Tuple"/> with IUmbracoEntity.
Declaration
Tuple<IUmbracoEntity, IUmbracoEntity>? GetEntitiesFromRelation(IRelation relation)
Parameters
| Type | Name | Description |
|---|---|---|
| IRelation | relation | Relation to retrieve parent and child object from |
Returns
| Type | Description |
|---|---|
| Tuple<IUmbracoEntity, IUmbracoEntity> | Returns a Tuple with Parent (item1) and Child (item2) |
GetEntitiesFromRelations(IEnumerable<IRelation>)
Gets the Parent and Child objects from a list of Relations as a list of IUmbracoEntity objects.
Declaration
IEnumerable<Tuple<IUmbracoEntity, IUmbracoEntity>> GetEntitiesFromRelations(IEnumerable<IRelation> relations)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<IRelation> | relations | List of relations to retrieve parent and child objects from |
Returns
| Type | Description |
|---|---|
| IEnumerable<Tuple<IUmbracoEntity, IUmbracoEntity>> | An enumerable list of System.Tuple with IUmbracoEntity |
GetPagedByChildKeyAsync(Guid, int, int, string?)
Declaration
Task<PagedModel<IRelation>> GetPagedByChildKeyAsync(Guid childKey, int skip, int take, string? relationTypeAlias)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | childKey | |
| int | skip | |
| int | take | |
| string | relationTypeAlias |
Returns
| Type | Description |
|---|---|
| Task<PagedModel<IRelation>> |
GetPagedByRelationTypeId(int, long, int, out long, Ordering?)
Gets a paged result of IRelation
Declaration
IEnumerable<IRelation> GetPagedByRelationTypeId(int relationTypeId, long pageIndex, int pageSize, out long totalRecords, Ordering? ordering = null)
Parameters
| Type | Name | Description |
|---|---|---|
| int | relationTypeId | |
| long | pageIndex | |
| int | pageSize | |
| long | totalRecords | |
| Ordering | ordering |
Returns
| Type | Description |
|---|---|
| IEnumerable<IRelation> |
GetPagedByRelationTypeKeyAsync(Guid, int, int, Ordering?)
Gets a paged result of IRelation
Declaration
Task<Attempt<PagedModel<IRelation>, RelationOperationStatus>> GetPagedByRelationTypeKeyAsync(Guid key, int skip, int take, Ordering? ordering = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | key | |
| int | skip | |
| int | take | |
| Ordering | ordering |
Returns
| Type | Description |
|---|---|
| Task<Attempt<PagedModel<IRelation>, RelationOperationStatus>> |
GetPagedChildEntitiesByParentId(int, long, int, out long, params UmbracoObjectTypes[])
Returns paged child entities for a related parent id
Declaration
IEnumerable<IUmbracoEntity> GetPagedChildEntitiesByParentId(int id, long pageIndex, int pageSize, out long totalChildren, params UmbracoObjectTypes[] entityTypes)
Parameters
| Type | Name | Description |
|---|---|---|
| int | id | |
| long | pageIndex | |
| int | pageSize | |
| long | totalChildren | |
| UmbracoObjectTypes[] | entityTypes |
Returns
| Type | Description |
|---|---|
| IEnumerable<IUmbracoEntity> | An enumerable list of IUmbracoEntity |
GetPagedParentEntitiesByChildId(int, long, int, out long, params UmbracoObjectTypes[])
Returns paged parent entities for a related child id
Declaration
IEnumerable<IUmbracoEntity> GetPagedParentEntitiesByChildId(int id, long pageIndex, int pageSize, out long totalChildren, params UmbracoObjectTypes[] entityTypes)
Parameters
| Type | Name | Description |
|---|---|---|
| int | id | |
| long | pageIndex | |
| int | pageSize | |
| long | totalChildren | |
| UmbracoObjectTypes[] | entityTypes |
Returns
| Type | Description |
|---|---|
| IEnumerable<IUmbracoEntity> | An enumerable list of IUmbracoEntity |
GetPagedRelationTypesAsync(int, int, params int[])
Gets the Relation types in a paged manner. Currently implements the paging in memory on the name attribute because the underlying repository does not support paging yet
Declaration
Task<PagedModel<IRelationType>> GetPagedRelationTypesAsync(int skip, int take, params int[] ids)
Parameters
| Type | Name | Description |
|---|---|---|
| int | skip | |
| int | take | |
| int[] | ids |
Returns
| Type | Description |
|---|---|
| Task<PagedModel<IRelationType>> |
GetParentEntitiesFromRelations(IEnumerable<IRelation>)
Gets the Parent objects from a list of Relations as a list of IUmbracoEntity objects.
Declaration
IEnumerable<IUmbracoEntity> GetParentEntitiesFromRelations(IEnumerable<IRelation> relations)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<IRelation> | relations | List of relations to retrieve parent objects from |
Returns
| Type | Description |
|---|---|
| IEnumerable<IUmbracoEntity> | An enumerable list of IUmbracoEntity |
GetParentEntityFromRelation(IRelation)
Gets the Parent object from a Relation as an IUmbracoEntity
Declaration
IUmbracoEntity? GetParentEntityFromRelation(IRelation relation)
Parameters
| Type | Name | Description |
|---|---|---|
| IRelation | relation | Relation to retrieve parent object from |
Returns
| Type | Description |
|---|---|
| IUmbracoEntity |
GetRelationTypeByAlias(string)
Gets a IRelationType by its Alias
Declaration
IRelationType? GetRelationTypeByAlias(string alias)
Parameters
| Type | Name | Description |
|---|---|---|
| string | alias | Alias of the IRelationType |
Returns
| Type | Description |
|---|---|
| IRelationType | A IRelationType object |
GetRelationTypeById(Guid)
Gets a IRelationType by its Id
Declaration
IRelationType? GetRelationTypeById(Guid id)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | id | Id of the IRelationType |
Returns
| Type | Description |
|---|---|
| IRelationType | A IRelationType object |
GetRelationTypeById(int)
Gets a IRelationType by its Id
Declaration
IRelationType? GetRelationTypeById(int id)
Parameters
| Type | Name | Description |
|---|---|---|
| int | id | Id of the IRelationType |
Returns
| Type | Description |
|---|---|
| IRelationType | A IRelationType object |
HasRelations(IRelationType)
Checks whether any relations exists for the passed in IRelationType.
Declaration
bool HasRelations(IRelationType relationType)
Parameters
| Type | Name | Description |
|---|---|---|
| IRelationType | relationType | IRelationType to check for relations |
Returns
| Type | Description |
|---|---|
| bool | Returns |
IsRelated(int, RelationDirectionFilter)
Checks whether any relations exists for the passed in Id and direction.
Declaration
[Obsolete("Please use the overload taking all parameters. Scheduled for removal in Umbraco 18.")]
bool IsRelated(int id, RelationDirectionFilter directionFilter)
Parameters
| Type | Name | Description |
|---|---|---|
| int | id | Id of an object to check relations for |
| RelationDirectionFilter | directionFilter | Indicates whether to check for relations as parent, child or in either direction. |
Returns
| Type | Description |
|---|---|
| bool | Returns |
IsRelated(int, RelationDirectionFilter, int[]?, int[]?)
Checks whether any relations exists for the passed in Id and direction.
Declaration
bool IsRelated(int id, RelationDirectionFilter directionFilter, int[]? includeRelationTypeIds = null, int[]? excludeRelationTypeIds = null)
Parameters
| Type | Name | Description |
|---|---|---|
| int | id | Id of an object to check relations for |
| RelationDirectionFilter | directionFilter | Indicates whether to check for relations as parent, child or in either direction. |
| int[] | includeRelationTypeIds | A collection of relation type Ids to include consideration in the relation checks. |
| int[] | excludeRelationTypeIds | A collection of relation type Ids to exclude from consideration in the relation checks. |
Returns
| Type | Description |
|---|---|
| bool | Returns |
Remarks
If no relation type Ids are provided in includeRelationTypeIds or excludeRelationTypeIds, all relation type Ids are considered.
Relate(int, int, string)
Relates two objects by their entity Ids.
Declaration
IRelation Relate(int parentId, int childId, string relationTypeAlias)
Parameters
| Type | Name | Description |
|---|---|---|
| int | parentId | Id of the parent |
| int | childId | Id of the child |
| string | relationTypeAlias | Alias of the type of relation to create |
Returns
| Type | Description |
|---|---|
| IRelation | The created IRelation |
Relate(int, int, IRelationType)
Relates two objects by their entity Ids.
Declaration
IRelation Relate(int parentId, int childId, IRelationType relationType)
Parameters
| Type | Name | Description |
|---|---|---|
| int | parentId | Id of the parent |
| int | childId | Id of the child |
| IRelationType | relationType | The type of relation to create |
Returns
| Type | Description |
|---|---|
| IRelation | The created IRelation |
Relate(IUmbracoEntity, IUmbracoEntity, string)
Relates two objects that are based on the IUmbracoEntity interface.
Declaration
IRelation Relate(IUmbracoEntity parent, IUmbracoEntity child, string relationTypeAlias)
Parameters
| Type | Name | Description |
|---|---|---|
| IUmbracoEntity | parent | Parent entity |
| IUmbracoEntity | child | Child entity |
| string | relationTypeAlias | Alias of the type of relation to create |
Returns
| Type | Description |
|---|---|
| IRelation | The created IRelation |
Relate(IUmbracoEntity, IUmbracoEntity, IRelationType)
Relates two objects that are based on the IUmbracoEntity interface.
Declaration
IRelation Relate(IUmbracoEntity parent, IUmbracoEntity child, IRelationType relationType)
Parameters
| Type | Name | Description |
|---|---|---|
| IUmbracoEntity | parent | Parent entity |
| IUmbracoEntity | child | Child entity |
| IRelationType | relationType | The type of relation to create |
Returns
| Type | Description |
|---|---|
| IRelation | The created IRelation |
Save(IEnumerable<IRelation>)
Declaration
void Save(IEnumerable<IRelation> relations)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<IRelation> | relations |
Save(IRelation)
Saves a IRelation
Declaration
void Save(IRelation relation)
Parameters
| Type | Name | Description |
|---|---|---|
| IRelation | relation | Relation to save |
Save(IRelationType)
Saves a IRelationType
Declaration
void Save(IRelationType relationType)
Parameters
| Type | Name | Description |
|---|---|---|
| IRelationType | relationType | RelationType to Save |
UpdateAsync(IRelationType, Guid)
Saves a IRelationType
Declaration
Task<Attempt<IRelationType, RelationTypeOperationStatus>> UpdateAsync(IRelationType relationType, Guid userKey)
Parameters
| Type | Name | Description |
|---|---|---|
| IRelationType | relationType | RelationType to Save |
| Guid | userKey | Key of the user thats saving the relation type |
Returns
| Type | Description |
|---|---|
| Task<Attempt<IRelationType, RelationTypeOperationStatus>> | A Attempt with a status of whether the operations was a success or failure |