Class RelationService
Namespace: Umbraco.Cms.Core.Services
Assembly: Umbraco.Core.dll
Syntax
public class RelationService : RepositoryService, IRelationService, IService
Constructors
View SourceRelationService(ICoreScopeProvider, ILoggerFactory, IEventMessagesFactory, IEntityService, IRelationRepository, IRelationTypeRepository, IAuditRepository, IUserIdKeyResolver)
Declaration
public RelationService(ICoreScopeProvider uowProvider, ILoggerFactory loggerFactory, IEventMessagesFactory eventMessagesFactory, IEntityService entityService, IRelationRepository relationRepository, IRelationTypeRepository relationTypeRepository, IAuditRepository auditRepository, IUserIdKeyResolver userIdKeyResolver)
Parameters
Type | Name | Description |
---|---|---|
ICoreScopeProvider | uowProvider | |
ILoggerFactory | loggerFactory | |
IEventMessagesFactory | eventMessagesFactory | |
IEntityService | entityService | |
IRelationRepository | relationRepository | |
IRelationTypeRepository | relationTypeRepository | |
IAuditRepository | auditRepository | |
IUserIdKeyResolver | userIdKeyResolver |
Methods
View SourceAreRelated(Int32, Int32)
Checks whether two items are related
Declaration
public bool AreRelated(int parentId, int childId)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | parentId | Id of the Parent relation |
System.Int32 | childId | Id of the Child relation |
Returns
Type | Description |
---|---|
System.Boolean | Returns |
AreRelated(Int32, Int32, String)
Checks whether two items are related
Declaration
public bool AreRelated(int parentId, int childId, string relationTypeAlias)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | parentId | Id of the Parent relation |
System.Int32 | childId | Id of the Child relation |
System.String | relationTypeAlias | Alias of the type of relation to create |
Returns
Type | Description |
---|---|
System.Boolean | Returns |
AreRelated(Int32, Int32, IRelationType)
Declaration
public bool AreRelated(int parentId, int childId, IRelationType relationType)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | parentId | |
System.Int32 | childId | |
IRelationType | relationType |
Returns
Type | Description |
---|---|
System.Boolean |
AreRelated(IUmbracoEntity, IUmbracoEntity)
Checks whether two items are related
Declaration
public bool AreRelated(IUmbracoEntity parent, IUmbracoEntity child)
Parameters
Type | Name | Description |
---|---|---|
IUmbracoEntity | parent | Parent entity |
IUmbracoEntity | child | Child entity |
Returns
Type | Description |
---|---|
System.Boolean | Returns |
AreRelated(IUmbracoEntity, IUmbracoEntity, String)
Checks whether two items are related
Declaration
public bool AreRelated(IUmbracoEntity parent, IUmbracoEntity child, string relationTypeAlias)
Parameters
Type | Name | Description |
---|---|---|
IUmbracoEntity | parent | Parent entity |
IUmbracoEntity | child | Child entity |
System.String | relationTypeAlias | Alias of the type of relation to create |
Returns
Type | Description |
---|---|
System.Boolean | Returns |
CountRelationTypes()
Declaration
public int CountRelationTypes()
Returns
Type | Description |
---|---|
System.Int32 |
CreateAsync(IRelationType, Guid)
Saves a IRelationType
Declaration
public async 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
public void Delete(IRelation relation)
Parameters
Type | Name | Description |
---|---|---|
IRelation | relation | Relation to Delete |
Delete(IRelationType)
Deletes a IRelationType
Declaration
public void Delete(IRelationType relationType)
Parameters
Type | Name | Description |
---|---|---|
IRelationType | relationType | RelationType to Delete |
DeleteAsync(Guid, Guid)
Deletes a IRelationType
Declaration
public async 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
public void DeleteRelationsOfType(IRelationType relationType)
Parameters
Type | Name | Description |
---|---|---|
IRelationType | relationType | IRelationType to Delete Relations for |
GetAllowedObjectTypes()
Gets all allowed parent/child object types for a given IRelationType />
Declaration
public IEnumerable<UmbracoObjectTypes> GetAllowedObjectTypes()
Returns
Type | Description |
---|---|
IEnumerable<UmbracoObjectTypes> | All of the allowed UmbracoObjectTypes. |
GetAllRelations(Int32[])
Gets all IRelation objects
Declaration
public IEnumerable<IRelation> GetAllRelations(params int[] ids)
Parameters
Type | Name | Description |
---|---|---|
System.Int32[] | ids | Optional array of integer ids to return relations for |
Returns
Type | Description |
---|---|
IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetAllRelationsByRelationType(Int32)
Declaration
public IEnumerable<IRelation> GetAllRelationsByRelationType(int relationTypeId)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | relationTypeId |
Returns
Type | Description |
---|---|
IEnumerable<IRelation> |
GetAllRelationsByRelationType(IRelationType)
Declaration
public IEnumerable<IRelation> GetAllRelationsByRelationType(IRelationType relationType)
Parameters
Type | Name | Description |
---|---|---|
IRelationType | relationType |
Returns
Type | Description |
---|---|
IEnumerable<IRelation> |
GetAllRelationTypes(Int32[])
Gets all IRelation objects
Declaration
public IEnumerable<IRelationType> GetAllRelationTypes(params int[] ids)
Parameters
Type | Name | Description |
---|---|---|
System.Int32[] | ids | Optional array of integer ids to return relationtypes for |
Returns
Type | Description |
---|---|
IEnumerable<IRelationType> | An enumerable list of IRelation objects |
GetByChild(IUmbracoEntity)
Gets a list of IRelation objects by their child Entity
Declaration
public 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
public IEnumerable<IRelation> GetByChild(IUmbracoEntity child, string relationTypeAlias)
Parameters
Type | Name | Description |
---|---|---|
IUmbracoEntity | child | Child Entity to retrieve relations for |
System.String | relationTypeAlias | Alias of the type of relation to retrieve |
Returns
Type | Description |
---|---|
IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetByChildId(Int32)
Gets a list of IRelation objects by their child Id
Declaration
public IEnumerable<IRelation> GetByChildId(int id)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | id | Id of the child to retrieve relations for |
Returns
Type | Description |
---|---|
IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetByChildId(Int32, String)
Gets a list of IRelation objects by their child Id
Declaration
public IEnumerable<IRelation> GetByChildId(int id, string relationTypeAlias)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | id | Id of the child to retrieve relations for |
System.String | relationTypeAlias | Alias of the type of relation to retrieve |
Returns
Type | Description |
---|---|
IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetById(Int32)
Gets a IRelation by its Id
Declaration
public IRelation GetById(int id)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | id | Id of the IRelation |
Returns
Type | Description |
---|---|
IRelation | A IRelation object |
GetByParent(IUmbracoEntity)
Declaration
public IEnumerable<IRelation> GetByParent(IUmbracoEntity parent)
Parameters
Type | Name | Description |
---|---|---|
IUmbracoEntity | parent |
Returns
Type | Description |
---|---|
IEnumerable<IRelation> |
GetByParent(IUmbracoEntity, String)
Gets a list of IRelation objects by their parent entity
Declaration
public IEnumerable<IRelation> GetByParent(IUmbracoEntity parent, string relationTypeAlias)
Parameters
Type | Name | Description |
---|---|---|
IUmbracoEntity | parent | Parent Entity to retrieve relations for |
System.String | relationTypeAlias | Alias of the type of relation to retrieve |
Returns
Type | Description |
---|---|
IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetByParentAndChildId(Int32, Int32, IRelationType)
Gets a relation by the unique combination of parentId, childId and relationType.
Declaration
public IRelation GetByParentAndChildId(int parentId, int childId, IRelationType relationType)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | parentId | The id of the parent item. |
System.Int32 | childId | The id of the child item. |
IRelationType | relationType | The RelationType. |
Returns
Type | Description |
---|---|
IRelation | The relation or null |
GetByParentId(Int32)
Declaration
public IEnumerable<IRelation> GetByParentId(int id)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | id |
Returns
Type | Description |
---|---|
IEnumerable<IRelation> |
GetByParentId(Int32, String)
Declaration
public IEnumerable<IRelation> GetByParentId(int id, string relationTypeAlias)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | id | |
System.String | relationTypeAlias |
Returns
Type | Description |
---|---|
IEnumerable<IRelation> |
GetByParentOrChildId(Int32)
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
public IEnumerable<IRelation> GetByParentOrChildId(int id)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | id | Id of the child or parent to retrieve relations for |
Returns
Type | Description |
---|---|
IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetByParentOrChildId(Int32, String)
Declaration
public IEnumerable<IRelation> GetByParentOrChildId(int id, string relationTypeAlias)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | id | |
System.String | relationTypeAlias |
Returns
Type | Description |
---|---|
IEnumerable<IRelation> |
GetByRelationTypeAlias(String)
Gets a list of IRelation objects by the Alias of the IRelationType
Declaration
public IEnumerable<IRelation> GetByRelationTypeAlias(string relationTypeAlias)
Parameters
Type | Name | Description |
---|---|---|
System.String | relationTypeAlias | Alias of the IRelationType to retrieve Relations for |
Returns
Type | Description |
---|---|
IEnumerable<IRelation> | An enumerable list of IRelation objects |
GetByRelationTypeId(Int32)
Declaration
public IEnumerable<IRelation> GetByRelationTypeId(int relationTypeId)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | relationTypeId |
Returns
Type | Description |
---|---|
IEnumerable<IRelation> |
GetByRelationTypeName(String)
Gets a list of IRelation objects by the Name of the IRelationType
Declaration
public IEnumerable<IRelation> GetByRelationTypeName(string relationTypeName)
Parameters
Type | Name | Description |
---|---|---|
System.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
public 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
public 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
Declaration
public Tuple<IUmbracoEntity, IUmbracoEntity>? GetEntitiesFromRelation(IRelation relation)
Parameters
Type | Name | Description |
---|---|---|
IRelation | relation | Relation to retrieve parent and child object from |
Returns
Type | Description |
---|---|
System.Nullable<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
public 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 |
GetPagedByChildKeyAsync(Guid, Int32, Int32, String)
Declaration
public async Task<PagedModel<IRelation>> GetPagedByChildKeyAsync(Guid childKey, int skip, int take, string relationTypeAlias)
Parameters
Type | Name | Description |
---|---|---|
Guid | childKey | |
System.Int32 | skip | |
System.Int32 | take | |
System.String | relationTypeAlias |
Returns
Type | Description |
---|---|
Task<PagedModel<IRelation>> |
GetPagedByRelationTypeId(Int32, Int64, Int32, out Int64, Ordering)
Gets a paged result of IRelation
Declaration
public IEnumerable<IRelation> GetPagedByRelationTypeId(int relationTypeId, long pageIndex, int pageSize, out long totalRecords, Ordering ordering = null)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | relationTypeId | |
System.Int64 | pageIndex | |
System.Int32 | pageSize | |
System.Int64 | totalRecords | |
Ordering | ordering |
Returns
Type | Description |
---|---|
IEnumerable<IRelation> |
GetPagedByRelationTypeKeyAsync(Guid, Int32, Int32, Ordering)
Gets a paged result of IRelation
Declaration
public Task<Attempt<PagedModel<IRelation>, RelationOperationStatus>> GetPagedByRelationTypeKeyAsync(Guid key, int skip, int take, Ordering ordering = null)
Parameters
Type | Name | Description |
---|---|---|
Guid | key | |
System.Int32 | skip | |
System.Int32 | take | |
Ordering | ordering |
Returns
Type | Description |
---|---|
Task<Attempt<PagedModel<IRelation>, RelationOperationStatus>> |
GetPagedChildEntitiesByParentId(Int32, Int64, Int32, out Int64, UmbracoObjectTypes[])
Returns paged child entities for a related parent id
Declaration
public IEnumerable<IUmbracoEntity> GetPagedChildEntitiesByParentId(int id, long pageIndex, int pageSize, out long totalChildren, params UmbracoObjectTypes[] entityTypes)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | id | |
System.Int64 | pageIndex | |
System.Int32 | pageSize | |
System.Int64 | totalChildren | |
UmbracoObjectTypes[] | entityTypes |
Returns
Type | Description |
---|---|
IEnumerable<IUmbracoEntity> | An enumerable list of IUmbracoEntity |
GetPagedParentEntitiesByChildId(Int32, Int64, Int32, out Int64, UmbracoObjectTypes[])
Returns paged parent entities for a related child id
Declaration
public IEnumerable<IUmbracoEntity> GetPagedParentEntitiesByChildId(int id, long pageIndex, int pageSize, out long totalChildren, params UmbracoObjectTypes[] entityTypes)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | id | |
System.Int64 | pageIndex | |
System.Int32 | pageSize | |
System.Int64 | totalChildren | |
UmbracoObjectTypes[] | entityTypes |
Returns
Type | Description |
---|---|
IEnumerable<IUmbracoEntity> | An enumerable list of IUmbracoEntity |
GetPagedRelationTypesAsync(Int32, Int32, Int32[])
Gets the Relation types in a paged manner. Currently implements the paging in memory on the name property because the underlying repository does not support paging yet
Declaration
public Task<PagedModel<IRelationType>> GetPagedRelationTypesAsync(int skip, int take, params int[] ids)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | skip | |
System.Int32 | take | |
System.Int32[] | 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
public 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
public 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
public IRelationType GetRelationTypeByAlias(string alias)
Parameters
Type | Name | Description |
---|---|---|
System.String | alias | Alias of the IRelationType |
Returns
Type | Description |
---|---|
IRelationType | A IRelationType object |
GetRelationTypeById(Guid)
Gets a IRelationType by its Id
Declaration
public IRelationType GetRelationTypeById(Guid id)
Parameters
Type | Name | Description |
---|---|---|
Guid | id | Id of the IRelationType |
Returns
Type | Description |
---|---|
IRelationType | A IRelationType object |
GetRelationTypeById(Int32)
Gets a IRelationType by its Id
Declaration
public IRelationType GetRelationTypeById(int id)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | 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
public bool HasRelations(IRelationType relationType)
Parameters
Type | Name | Description |
---|---|---|
IRelationType | relationType | IRelationType to check for relations |
Returns
Type | Description |
---|---|
System.Boolean | Returns |
IsRelated(Int32)
Checks whether any relations exists for the passed in Id.
Declaration
public bool IsRelated(int id)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | id | Id of an object to check relations for |
Returns
Type | Description |
---|---|
System.Boolean | Returns |
IsRelated(Int32, RelationDirectionFilter)
Checks whether any relations exists for the passed in Id and direction.
Declaration
public bool IsRelated(int id, RelationDirectionFilter directionFilter)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | 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 |
---|---|
System.Boolean | Returns |
Relate(Int32, Int32, String)
Relates two objects by their entity Ids.
Declaration
public IRelation Relate(int parentId, int childId, string relationTypeAlias)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | parentId | Id of the parent |
System.Int32 | childId | Id of the child |
System.String | relationTypeAlias | Alias of the type of relation to create |
Returns
Type | Description |
---|---|
IRelation | The created IRelation |
Relate(Int32, Int32, IRelationType)
Relates two objects by their entity Ids.
Declaration
public IRelation Relate(int parentId, int childId, IRelationType relationType)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | parentId | Id of the parent |
System.Int32 | 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
public IRelation Relate(IUmbracoEntity parent, IUmbracoEntity child, string relationTypeAlias)
Parameters
Type | Name | Description |
---|---|---|
IUmbracoEntity | parent | Parent entity |
IUmbracoEntity | child | Child entity |
System.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
public 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
public void Save(IEnumerable<IRelation> relations)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<IRelation> | relations |
Save(IRelation)
Saves a IRelation
Declaration
public void Save(IRelation relation)
Parameters
Type | Name | Description |
---|---|---|
IRelation | relation | Relation to save |
Save(IRelationType)
Saves a IRelationType
Declaration
public void Save(IRelationType relationType)
Parameters
Type | Name | Description |
---|---|---|
IRelationType | relationType | RelationType to Save |
UpdateAsync(IRelationType, Guid)
Saves a IRelationType
Declaration
public async 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 |