public IEnumerable<GroupTypePath> GetAllCheckinGroupTypePaths()
{
List<GroupTypePath> result = new List<GroupTypePath>();
GroupTypeService groupTypeService = this;
var qry = groupTypeService.Queryable();
// limit to show only GroupTypes that have a group type purpose of Checkin Template
int groupTypePurposeCheckInTemplateId = Rock.Web.Cache.DefinedValueCache.Read( new Guid( Rock.SystemGuid.DefinedValue.GROUPTYPE_PURPOSE_CHECKIN_TEMPLATE ) ).Id;
qry = qry.Where( a => a.GroupTypePurposeValueId == groupTypePurposeCheckInTemplateId );
foreach ( var groupTypeId in qry.Select( a => a.Id ) )
{
result.AddRange( groupTypeService.GetAllAssociatedDescendentsPath( groupTypeId ) );
}
return result;
}