/// <summary> /// Deprecated Method for adding a new object to the AdCachedRoleMembers EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. /// </summary> public void AddToAdCachedRoleMembers(AdCachedRoleMember adCachedRoleMember) { base.AddObject("AdCachedRoleMembers", adCachedRoleMember); }
/// <summary> /// Create a new AdCachedRoleMember object. /// </summary> /// <param name="groupName">Initial value of the GroupName property.</param> /// <param name="memberName">Initial value of the MemberName property.</param> /// <param name="memberDisplayName">Initial value of the MemberDisplayName property.</param> public static AdCachedRoleMember CreateAdCachedRoleMember(global::System.String groupName, global::System.String memberName, global::System.String memberDisplayName) { AdCachedRoleMember adCachedRoleMember = new AdCachedRoleMember(); adCachedRoleMember.GroupName = groupName; adCachedRoleMember.MemberName = memberName; adCachedRoleMember.MemberDisplayName = memberDisplayName; return adCachedRoleMember; }
private void BuildRoleMembersCache() { using (TicketDeskEntities ctx = new TicketDeskEntities()) { var configuredTdRoles = new string[] { TdStaffRoleName, TdSubmittersRoleName, TdAdminRoleName }; var sqlCacheMembers = ctx.AdCachedRoleMembers.ToList();//go ahead and fetch entire table foreach (var tdRole in configuredTdRoles) { List<UserInfo> adUsersForTdRole = new List<UserInfo>(); adUsersForTdRole.AddRange(AdRepository.GetGroupMembersFromAd(tdRole)); foreach (var sMember in sqlCacheMembers.Where(rm => rm.GroupName == tdRole))//find roles in SQL that aren't in AD anymore { if (adUsersForTdRole.Count(au => au.Name == sMember.MemberName) < 1) { ctx.AdCachedRoleMembers.DeleteObject(sMember); } } foreach (var aMember in adUsersForTdRole)// file roles in AD that need to be updated/added to SQL { var sMember = sqlCacheMembers.SingleOrDefault(sm => sm.GroupName == tdRole && sm.MemberName == aMember.Name); if (sMember == null)//doesn't exist in SQL, insert { sMember = new AdCachedRoleMember(); sMember.GroupName = tdRole; ctx.AdCachedRoleMembers.AddObject(sMember); } sMember.MemberName = aMember.Name; sMember.MemberDisplayName = aMember.DisplayName; } ctx.SaveChanges(); } } }