-
Notifications
You must be signed in to change notification settings - Fork 4.6k
/
SearchResults.cs
85 lines (60 loc) · 2.74 KB
/
SearchResults.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System.Collections;
namespace System.DirectoryServices.Protocols
{
public class SearchResultReference
{
private readonly Uri[] _resultReferences;
internal SearchResultReference(Uri[] uris) => _resultReferences = uris;
public Uri[] Reference
{
get
{
if (_resultReferences == null)
{
return Array.Empty<Uri>();
}
Uri[] tempUri = new Uri[_resultReferences.Length];
for (int i = 0; i < _resultReferences.Length; i++)
{
tempUri[i] = new Uri(_resultReferences[i].AbsoluteUri);
}
return tempUri;
}
}
public DirectoryControl[] Controls => Array.Empty<DirectoryControl>();
}
public class SearchResultReferenceCollection : ReadOnlyCollectionBase
{
internal SearchResultReferenceCollection() { }
public SearchResultReference this[int index] => (SearchResultReference)InnerList[index];
internal int Add(SearchResultReference reference) => InnerList.Add(reference);
public bool Contains(SearchResultReference value) => InnerList.Contains(value);
public int IndexOf(SearchResultReference value) => InnerList.IndexOf(value);
public void CopyTo(SearchResultReference[] values, int index) => InnerList.CopyTo(values, index);
internal void Clear() => InnerList.Clear();
}
public class SearchResultEntry
{
internal SearchResultEntry(string dn) : this(dn, new SearchResultAttributeCollection()) { }
internal SearchResultEntry(string dn, SearchResultAttributeCollection attrs)
{
DistinguishedName = dn;
Attributes = attrs;
}
public string DistinguishedName { get; internal set; }
public SearchResultAttributeCollection Attributes { get; }
public DirectoryControl[] Controls => Array.Empty<DirectoryControl>();
}
public class SearchResultEntryCollection : ReadOnlyCollectionBase
{
internal SearchResultEntryCollection() { }
public SearchResultEntry this[int index] => (SearchResultEntry)InnerList[index];
internal int Add(SearchResultEntry entry) => InnerList.Add(entry);
public bool Contains(SearchResultEntry value) => InnerList.Contains(value);
public int IndexOf(SearchResultEntry value) => InnerList.IndexOf(value);
public void CopyTo(SearchResultEntry[] values, int index) => InnerList.CopyTo(values, index);
internal void Clear() => InnerList.Clear();
}
}