コード例 #1
0
 /// <summary>
 /// Deprecated Method for adding a new object to the AdCachedRoleMembers EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToAdCachedRoleMembers(AdCachedRoleMember adCachedRoleMember)
 {
     base.AddObject("AdCachedRoleMembers", adCachedRoleMember);
 }
コード例 #2
0
 /// <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;
 }
コード例 #3
0
        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();
                }
            }
        }