private static string FormatDirectoryAttribute(DirectoryAttributeModification directoryAttribute) { if (directoryAttribute != null) { string name = directoryAttribute.Name; string value = null; if (directoryAttribute.Count > 1) { var type = directoryAttribute[0].GetType(); if (type == typeof(string)) { #if NET35 value = string.Join(" ", directoryAttribute.Cast <string>().ToArray()); #else value = string.Join(" ", directoryAttribute.Cast <string>()); #endif } else if (type == typeof(byte[])) { #if NET35 value = string.Join(" ", directoryAttribute.Cast <byte[]>().Select(b => b.ToStringOctet()).ToArray()); #else value = string.Join(" ", directoryAttribute.Cast <byte[]>().Select(b => b.ToStringOctet())); #endif } } else if (directoryAttribute.Count > 0) { var rawValue = directoryAttribute[0]; if (rawValue is byte[]) { value = (rawValue as byte[]).ToStringOctet(); } else { value = rawValue.ToString(); } } return(directoryAttribute.Operation == DirectoryAttributeOperation.Delete ? string.Format("{{ {0} {1} }}", "Delete", name) : string.Format("{{ {0} {1}: {2} }}", directoryAttribute.Operation, name, value)); } return(string.Empty); }
public void Ctor_DistinguishedName_Operation_AttributeName_Values(string distinguishedName, DirectoryAttributeOperation operation, string attributeName, object[] values) { var request = new ModifyRequest(distinguishedName, operation, attributeName, values); Assert.Empty(request.Controls); DirectoryAttributeModification modification = (DirectoryAttributeModification)Assert.Single(request.Modifications); Assert.Equal(attributeName, modification.Name); Assert.Equal(operation, modification.Operation); Assert.Equal(values ?? Enumerable.Empty <object>(), modification.Cast <object>()); Assert.Equal(distinguishedName, request.DistinguishedName); Assert.Null(request.RequestId); }