public IList<DirectoryUser> GetUsers() {
            IList<DirectoryUser> ldapUsersList = new List<DirectoryUser>();
            DirectoryEntry group = GetDirectoryEntry(fullPath, new[] { groupMemberAttribute });
            PropertyValueCollection memberPaths = GetMemberPaths(group);

            foreach (string memberPath in memberPaths) {
                try {
                    DirectoryUser user = new DirectoryUser();
                    DirectoryEntry member = GetMember(memberPath);
                    SetUsername(user, member);
                    SetFullName(user, member);
                    SetEmail(user, member);
                    SetNickname(user, member);
                    ldapUsersList.Add(user);
                } catch (Exception ex) {
                    logger.ErrorException("Unable to read member from ldap, path: " + memberPath, ex);
                }
            }

            if (memberPaths.Count < 1) {
                logger.Warn("No members were returned from group: " + fullPath + ", group member attribute name: '" + groupMemberAttribute);
            }
            
            return ldapUsersList;
        }
 private void SetEmail(DirectoryUser user, DirectoryEntry member) {
     try {
         user.Email = member.Properties[mapEmail][0].ToString(); //email
     } catch (Exception ex) {
         logger.ErrorException("Unable to get email property for member: " + member.Path + ", email property name: " + mapEmail, ex);
         throw;
     }
 }
 private void SetNickname(DirectoryUser user, DirectoryEntry member) {
     try {
         user.Nickname = member.Properties[mapNickname][0].ToString(); //nickname
     } catch (Exception ex) {
         logger.ErrorException("Unable to get nickname property for member: " + member.Path + ", nickname property name: " + mapNickname, ex);
         throw;
     }
 }
 private void SetUsername(DirectoryUser user, DirectoryEntry member) {
     try
     {
         string directoryUsername = member.Properties[mapUsername][0].ToString(); //username
         user.Username = useIntegratedAuth ? string.Format("{0}\\{1}", domain, directoryUsername) : directoryUsername;
     }
     catch (Exception ex) {
         logger.ErrorException("Unable to get username property for member: " + member.Path + ", username property name: " + mapUsername, ex);
         throw;
     }
 }