/// <summary> /// Sets the value (as id) /// </summary> /// <param name="control">The control.</param> /// <param name="configurationValues">The configuration values.</param> /// <param name="value">The value.</param> public override void SetEditValue(System.Web.UI.Control control, Dictionary <string, ConfigurationValue> configurationValues, string value) { var picker = control as CheckinGroupPicker; if (picker != null) { bool allowMultiSelect = false; if (configurationValues != null && configurationValues.ContainsKey(CONFIG_GROUP_PICKER_ALLOW_MULTI_SELECT) && configurationValues[CONFIG_GROUP_PICKER_ALLOW_MULTI_SELECT] != null) { allowMultiSelect = configurationValues[CONFIG_GROUP_PICKER_ALLOW_MULTI_SELECT].Value.AsBoolean(); } if (allowMultiSelect) { if (!string.IsNullOrWhiteSpace(value)) { var groupGuids = value.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries) .Select(g => g.AsGuid()) .ToList(); var groups = new Rock.Model.GroupService(new RockContext()).GetByGuids(groupGuids); picker.SelectedGroups = groups; } } else { Guid guid = value.AsGuid(); // get the item (or null) and set it var group = new Rock.Model.GroupService(new RockContext()).Get(guid); picker.SelectedGroup = group; } } }
/// <summary> /// Returns a list of all the possible Roles /// </summary> /// <returns></returns> public static List <Role> AllRoles() { List <Role> roles = new List <Role>(); Rock.Model.GroupService groupService = new Rock.Model.GroupService(); foreach (int id in groupService.Queryable() .Where(g => g.IsSecurityRole == true) .OrderBy(g => g.Name) .Select(g => g.Id) .ToList()) { roles.Add(Role.Read(id)); } return(roles); }
/// <summary> /// Returns the field's current value(s) /// </summary> /// <param name="parentControl">The parent control.</param> /// <param name="value">Information about the value</param> /// <param name="Values">The configuration values.</param> /// <param name="condensed">Flag indicating if the value should be condensed (i.e. for use in a grid column)</param> /// <returns></returns> public override string FormatValue(Control parentControl, string value, Dictionary <string, ConfigurationValue> configurationValues, bool condensed) { string formattedValue = value; if (!string.IsNullOrWhiteSpace(value)) { var guids = value.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries) .Select(g => g.AsGuid()) .ToList(); var groupNames = new Rock.Model.GroupService(new RockContext()) .GetByGuids(guids) .Select(g => g.Name); if (groupNames.Any()) { formattedValue = string.Join(", ", groupNames); } } return(base.FormatValue(parentControl, formattedValue, configurationValues, condensed)); }
/// <summary> /// Returns a list of all the possible Roles /// </summary> /// <returns></returns> public static List <Role> AllRoles() { List <Role> roles = new List <Role>(); Guid securityRoleGuid = Rock.SystemGuid.GroupType.GROUPTYPE_SECURITY_ROLE.AsGuid(); Rock.Model.GroupService groupService = new Rock.Model.GroupService(new RockContext()); foreach (int id in groupService.Queryable() .Where(g => g.GroupType.Guid.Equals(securityRoleGuid) || g.IsSecurityRole == true) .OrderBy(g => g.Name) .Select(g => g.Id) .ToList()) { roles.Add(Role.Read(id)); } return(roles); }
/// <summary> /// Returns a list of all the possible Roles /// </summary> /// <returns></returns> public static List <Role> AllRoles() { List <Role> roles = new List <Role>(); var securityGroupType = GroupTypeCache.Read(Rock.SystemGuid.GroupType.GROUPTYPE_SECURITY_ROLE.AsGuid()); int securityGroupTypeId = securityGroupType != null ? securityGroupType.Id : 0; Rock.Model.GroupService groupService = new Rock.Model.GroupService(new RockContext()); foreach (int id in groupService.Queryable() .Where(g => g.IsActive && (g.GroupTypeId == securityGroupTypeId || g.IsSecurityRole == true)) .OrderBy(g => g.Name) .Select(g => g.Id) .ToList()) { roles.Add(Role.Read(id)); } return(roles); }
/// <summary> /// Loads the groups. /// </summary> /// <param name="groupTypeId">The group type identifier.</param> private void LoadGroups(int?groupTypeId) { int?currentGroupId = this.GroupId; _ddlGroup.SelectedValue = null; _ddlGroup.Items.Clear(); if (groupTypeId.HasValue) { _ddlGroup.Items.Add(Rock.Constants.None.ListItem); var groupService = new Rock.Model.GroupService(new RockContext()); var groups = groupService.Queryable().Where(r => r.GroupTypeId == groupTypeId.Value).OrderBy(a => a.Name).ToList(); foreach (var r in groups) { var item = new ListItem(r.Name, r.Id.ToString().ToUpper()); item.Selected = r.Id == currentGroupId; _ddlGroup.Items.Add(item); } } }
/// <summary> /// Returns Role object from cache. If role does not already exist in cache, it /// will be read and added to cache /// </summary> /// <param name="id">The id.</param> /// <returns></returns> public static Role Read(int id) { string cacheKey = Role.CacheKey(id); ObjectCache cache = Rock.Web.Cache.RockMemoryCache.Default; Role role = cache[cacheKey] as Role; if (role != null) { return(role); } else { using (var rockContext = new RockContext()) { Rock.Model.GroupService groupService = new Rock.Model.GroupService(rockContext); Rock.Model.Group groupModel = groupService.Get(id); if (groupModel != null && groupModel.IsSecurityRole == true) { role = new Role(); role.Id = groupModel.Id; role.Name = groupModel.Name; role.Users = new List <string>(); role.IsSecurityTypeGroup = groupModel.GroupType.Guid.Equals(Rock.SystemGuid.GroupType.GROUPTYPE_SECURITY_ROLE.AsGuid()); foreach (Rock.Model.GroupMember member in groupModel.Members) { role.Users.Add(member.Person.Guid.ToString()); } cache.Set(cacheKey, role, new CacheItemPolicy()); return(role); } } } return(null); }
/// <summary> /// Loads the groups. /// </summary> /// <param name="groupTypeId">The group type identifier.</param> private void LoadGroupsAndRoles(int?groupTypeId) { int?currentGroupId = this.GroupId; int?currentGroupRoleId = this.GroupRoleId; _ddlGroup.SelectedValue = null; _ddlGroup.Items.Clear(); _ddlGroupRole.SelectedValue = null; _ddlGroupRole.Items.Clear(); if (groupTypeId.HasValue) { _ddlGroup.Items.Add(new ListItem()); var rockContext = new RockContext(); var groupService = new Rock.Model.GroupService(rockContext); var groups = groupService.Queryable().Where(r => r.GroupTypeId == groupTypeId.Value).OrderBy(a => a.Name).ToList(); foreach (var r in groups) { var item = new ListItem(r.Name, r.Id.ToString().ToUpper()); item.Selected = r.Id == currentGroupId; _ddlGroup.Items.Add(item); } var groupTypeRoleService = new Rock.Model.GroupTypeRoleService(rockContext); var groupRoles = groupTypeRoleService.Queryable().Where(r => r.GroupTypeId == groupTypeId.Value).OrderBy(a => a.Order).ThenBy(a => a.Name).ToList(); // add a blank option as first item _ddlGroupRole.Items.Add(new ListItem()); foreach (var r in groupRoles) { var item = new ListItem(r.Name, r.Id.ToString().ToUpper()); item.Selected = r.Id == currentGroupRoleId; _ddlGroupRole.Items.Add(item); } } }
/// <summary> /// Returns Role object from cache. If role does not already exist in cache, it /// will be read and added to cache /// </summary> /// <param name="id">The id.</param> /// <returns></returns> public static Role Read(int id) { string cacheKey = Role.CacheKey(id); ObjectCache cache = MemoryCache.Default; Role role = cache[cacheKey] as Role; if (role != null) { return(role); } else { Rock.Model.GroupService groupService = new Rock.Model.GroupService(); Rock.Model.Group groupModel = groupService.Get(id); if (groupModel != null && groupModel.IsSecurityRole == true) { role = new Role(); role.Id = groupModel.Id; role.Name = groupModel.Name; role.Users = new List <string>(); foreach (Rock.Model.GroupMember member in groupModel.Members) { role.Users.Add(member.Person.Guid.ToString()); } cache.Set(cacheKey, role, new CacheItemPolicy()); return(role); } else { return(null); } } }
/// <summary> /// Loads the by identifier. /// </summary> /// <param name="id">The identifier.</param> /// <returns></returns> public static Role LoadById(int id) { using (var rockContext = new RockContext()) { var securityGroupType = GroupTypeCache.Read(Rock.SystemGuid.GroupType.GROUPTYPE_SECURITY_ROLE.AsGuid(), rockContext); int securityGroupTypeId = securityGroupType != null ? securityGroupType.Id : 0; Rock.Model.GroupService groupService = new Rock.Model.GroupService(rockContext); Rock.Model.GroupMemberService groupMemberService = new Rock.Model.GroupMemberService(rockContext); Rock.Model.Group groupModel = groupService.Get(id); if (groupModel != null && (groupModel.IsSecurityRole == true || groupModel.GroupTypeId == securityGroupTypeId)) { var role = new Role(); role.Id = groupModel.Id; role.Name = groupModel.Name; role.People = new ConcurrentDictionary <Guid, bool>(); var groupMembersQry = groupMemberService.Queryable().Where(a => a.GroupId == groupModel.Id); // Add the members foreach (var personGuid in groupMembersQry .Where(m => m.GroupMemberStatus == Model.GroupMemberStatus.Active) .Select(m => m.Person.Guid) .ToList() .Distinct()) { role.People.TryAdd(personGuid, true); } role.IsSecurityTypeGroup = groupModel.GroupTypeId == securityGroupTypeId; return(role); } } return(null); }
/// <summary> /// Returns a list of all the possible Roles /// </summary> /// <returns></returns> public static List<Role> AllRoles() { List<Role> roles = new List<Role>(); Rock.Model.GroupService groupService = new Rock.Model.GroupService( new RockContext() ); foreach ( int id in groupService.Queryable() .Where( g => g.IsSecurityRole == true ) .OrderBy( g => g.Name ) .Select( g => g.Id ) .ToList() ) { roles.Add( Role.Read( id ) ); } return roles; }
/// <summary> /// Returns Role object from cache. If role does not already exist in cache, it /// will be read and added to cache /// </summary> /// <param name="id">The id.</param> /// <returns></returns> public static Role Read( int id ) { string cacheKey = Role.CacheKey( id ); ObjectCache cache = MemoryCache.Default; Role role = cache[cacheKey] as Role; if ( role != null ) return role; else { Rock.Model.GroupService groupService = new Rock.Model.GroupService( new RockContext() ); Rock.Model.Group groupModel = groupService.Get( id ); if ( groupModel != null && groupModel.IsSecurityRole == true ) { role = new Role(); role.Id = groupModel.Id; role.Name = groupModel.Name; role.Users = new List<string>(); foreach ( Rock.Model.GroupMember member in groupModel.Members ) { role.Users.Add( member.Person.Guid.ToString() ); } cache.Set( cacheKey, role, new CacheItemPolicy() ); return role; } else return null; } }
/// <summary> /// Returns a list of all the possible Roles /// </summary> /// <returns></returns> public static List<Role> AllRoles() { List<Role> roles = new List<Role>(); var securityGroupType = GroupTypeCache.Read( Rock.SystemGuid.GroupType.GROUPTYPE_SECURITY_ROLE.AsGuid() ); int securityGroupTypeId = securityGroupType != null ? securityGroupType.Id : 0; Rock.Model.GroupService groupService = new Rock.Model.GroupService( new RockContext() ); foreach ( int id in groupService.Queryable() .Where( g => g.IsActive && ( g.GroupTypeId == securityGroupTypeId || g.IsSecurityRole == true ) ) .OrderBy( g => g.Name ) .Select( g => g.Id ) .ToList() ) { roles.Add( Role.Read( id ) ); } return roles; }
/// <summary> /// Loads the groups. /// </summary> /// <param name="groupTypeId">The group type identifier.</param> private void LoadGroups( int? groupTypeId ) { int? currentGroupId = this.GroupId; _ddlGroup.SelectedValue = null; _ddlGroup.Items.Clear(); if ( groupTypeId.HasValue ) { _ddlGroup.Items.Add( Rock.Constants.None.ListItem ); var groupService = new Rock.Model.GroupService( new RockContext() ); var groups = groupService.Queryable().Where( r => r.GroupTypeId == groupTypeId.Value ).OrderBy( a => a.Name ).ToList(); foreach ( var r in groups ) { var item = new ListItem( r.Name, r.Id.ToString().ToUpper() ); item.Selected = r.Id == currentGroupId; _ddlGroup.Items.Add( item ); } } }
/// <summary> /// Loads the by identifier. /// </summary> /// <param name="id">The identifier.</param> /// <returns></returns> public static Role LoadById( int id ) { using ( var rockContext = new RockContext() ) { var securityGroupType = GroupTypeCache.Read( Rock.SystemGuid.GroupType.GROUPTYPE_SECURITY_ROLE.AsGuid(), rockContext ); int securityGroupTypeId = securityGroupType != null ? securityGroupType.Id : 0; Rock.Model.GroupService groupService = new Rock.Model.GroupService( rockContext ); Rock.Model.GroupMemberService groupMemberService = new Rock.Model.GroupMemberService( rockContext ); Rock.Model.Group groupModel = groupService.Get( id ); if ( groupModel != null && groupModel.IsActive && ( groupModel.IsSecurityRole == true || groupModel.GroupTypeId == securityGroupTypeId ) ) { var role = new Role(); role.Id = groupModel.Id; role.Name = groupModel.Name; role.People = new ConcurrentDictionary<Guid,bool>(); var groupMembersQry = groupMemberService.Queryable().Where( a => a.GroupId == groupModel.Id ); // Add the members foreach ( var personGuid in groupMembersQry .Where( m => m.GroupMemberStatus == Model.GroupMemberStatus.Active ) .Select( m => m.Person.Guid ) .ToList() .Distinct() ) { role.People.TryAdd( personGuid, true ); } role.IsSecurityTypeGroup = groupModel.GroupTypeId == securityGroupTypeId; return role; } } return null; }
/// <summary> /// Loads the groups. /// </summary> /// <param name="groupTypeId">The group type identifier.</param> private void LoadGroupsAndRoles( int? groupTypeId ) { int? currentGroupId = this.GroupId; int? currentGroupRoleId = this.GroupRoleId; _ddlGroup.SelectedValue = null; _ddlGroup.Items.Clear(); _ddlGroupRole.SelectedValue = null; _ddlGroupRole.Items.Clear(); if ( groupTypeId.HasValue ) { _ddlGroup.Items.Add( new ListItem() ); var rockContext = new RockContext(); var groupService = new Rock.Model.GroupService( rockContext ); var groups = groupService.Queryable().Where( r => r.GroupTypeId == groupTypeId.Value ).OrderBy( a => a.Name ).ToList(); foreach ( var r in groups ) { var item = new ListItem( r.Name, r.Id.ToString().ToUpper() ); item.Selected = r.Id == currentGroupId; _ddlGroup.Items.Add( item ); } var groupTypeRoleService = new Rock.Model.GroupTypeRoleService( rockContext ); var groupRoles = groupTypeRoleService.Queryable().Where( r => r.GroupTypeId == groupTypeId.Value ).OrderBy( a => a.Order ).ThenBy( a => a.Name ).ToList(); // add a blank option as first item _ddlGroupRole.Items.Add( new ListItem() ); foreach ( var r in groupRoles ) { var item = new ListItem( r.Name, r.Id.ToString().ToUpper() ); item.Selected = r.Id == currentGroupRoleId; _ddlGroupRole.Items.Add( item ); } } }
/// <summary> /// Returns a list of all the possible Roles /// </summary> /// <returns></returns> public static List<Role> AllRoles() { List<Role> roles = new List<Role>(); Guid securityRoleGuid = Rock.SystemGuid.GroupType.GROUPTYPE_SECURITY_ROLE.AsGuid(); Rock.Model.GroupService groupService = new Rock.Model.GroupService( new RockContext() ); foreach ( int id in groupService.Queryable() .Where( g => g.GroupType.Guid.Equals(securityRoleGuid) || g.IsSecurityRole == true ) .OrderBy( g => g.Name ) .Select( g => g.Id ) .ToList() ) { roles.Add( Role.Read( id ) ); } return roles; }
/// <summary> /// Returns Role object from cache. If role does not already exist in cache, it /// will be read and added to cache /// </summary> /// <param name="id">The id.</param> /// <returns></returns> public static Role Read( int id ) { string cacheKey = Role.CacheKey( id ); ObjectCache cache = Rock.Web.Cache.RockMemoryCache.Default; Role role = cache[cacheKey] as Role; if ( role != null ) { return role; } else { using ( var rockContext = new RockContext() ) { Rock.Model.GroupService groupService = new Rock.Model.GroupService( rockContext ); Rock.Model.Group groupModel = groupService.Get( id ); if ( groupModel != null && groupModel.IsSecurityRole == true ) { role = new Role(); role.Id = groupModel.Id; role.Name = groupModel.Name; role.Users = new List<string>(); role.IsSecurityTypeGroup = groupModel.GroupType.Guid.Equals( Rock.SystemGuid.GroupType.GROUPTYPE_SECURITY_ROLE.AsGuid() ); foreach ( Rock.Model.GroupMember member in groupModel.Members ) { role.Users.Add( member.Person.Guid.ToString() ); } cache.Set( cacheKey, role, new CacheItemPolicy() ); return role; } } } return null; }