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)
Declaration
public RelationService(ICoreScopeProvider uowProvider, ILoggerFactory loggerFactory, IEventMessagesFactory eventMessagesFactory, IEntityService entityService, IRelationRepository relationRepository, IRelationTypeRepository relationTypeRepository, IAuditRepository auditRepository)
Parameters
Type | Name | Description |
---|---|---|
ICoreScopeProvider | uowProvider | |
ILoggerFactory | loggerFactory | |
IEventMessagesFactory | eventMessagesFactory | |
IEntityService | entityService | |
IRelationRepository | relationRepository | |
IRelationTypeRepository | relationTypeRepository | |
IAuditRepository | auditRepository |
RelationService(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)
Declaration
public async Task<Attempt<IRelationType, RelationTypeOperationStatus>> CreateAsync(IRelationType relationType, Guid userKey)
Parameters
Type | Name | Description |
---|---|---|
IRelationType | relationType | |
Guid | userKey |
Returns
Type | Description |
---|---|
Task<Attempt<IRelationType, RelationTypeOperationStatus>> |
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)
Declaration
public async Task<Attempt<IRelationType, RelationTypeOperationStatus>> DeleteAsync(Guid key, Guid userKey)
Parameters
Type | Name | Description |
---|---|---|
Guid | key | |
Guid | userKey |
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()
Declaration
public IEnumerable<UmbracoObjectTypes> GetAllowedObjectTypes()
Returns
Type | Description |
---|---|
IEnumerable<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)
Declaration
public async 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 async 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 |
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)
Declaration
public async Task<Attempt<IRelationType, RelationTypeOperationStatus>> UpdateAsync(IRelationType relationType, Guid userKey)
Parameters
Type | Name | Description |
---|---|---|
IRelationType | relationType | |
Guid | userKey |
Returns
Type | Description |
---|---|
Task<Attempt<IRelationType, RelationTypeOperationStatus>> |