示例#1
0
        public IActionResult SearchPhoneBookItems(string term = "")
        {
            var data = new List <PhoneBookItem>();

            var filter = "(&(objectCategory=person)(objectclass=user)";

            if (!string.IsNullOrEmpty(term))
            {
                filter += $"(name=*{term}*)";
            }

            filter += ")";

            var entry = Domain.GetCurrentDomain().GetDirectoryEntry();

            var searcher = new DirectorySearcher(entry, filter);

            searcher.PropertiesToLoad.Add("name");
            searcher.PropertiesToLoad.Add("mobile");
            searcher.PropertiesToLoad.Add("mail");
            searcher.PropertiesToLoad.Add("telephonenumber");

            var result = searcher.FindAll();

            foreach (SearchResult searchResult in result)
            {
                var user = new PhoneBookItem(searchResult);

                if (user.HasContactsInformation())
                {
                    data.Add(user);
                }
            }

            data = data.OrderBy(c => c.Name).ToList();

            return(Json(data));
        }