Hi,
Below is an example of multiple levels of linked entities. Try and modify this to work with your entities.
Replace role with team, systemuserroles with equipment and systemuser with calendar.
public bool IsUserInRole(Guid userId, Guid roleId)
{
LinkEntity systemUserLink = new LinkEntity()
{
LinkFromEntityName = "systermuserroles",
LinkFromAttributeName = "systemuserid",
LinkToEntityName = "systemuser",
LinkToAttributeName = "systemuserid",
LinkCriteria =
{
Conditions =
{
new ConditionExpression("systemuserid", ConditionOperator.Equal, userId)
}
}
};
QueryExpression query = new QueryExpression()
{
EntityName = "role",
ColumnSet = new ColumnSet("roleid"),
LinkEntities =
{
new LinkEntity()
{
LinkFromEntityName = "role",
LinkFromAttributeName = "roleid",
LinkToEntityName = "systemuserroles",
LinkToAttributeName = "roleid",
LinkEntities = {systemUserLink}
}
},
Criteria =
{
Conditions =
{
new ConditionExpression("roleid", ConditionOperator.Equal, roleId)
}
}
};
EntityCollection results = OrganizationService.RetrieveMultiple(query);
bool rc = (results.Entities.Count > 0);
return rc;
}
Hope this helps.