public DirectoryAccessChange() { this.attributeType = String.Empty; this.attributeValue = new PartialAttributeType(); }
public DirectoryAccessChange() { this.attributeType = String.Empty; this.attributeValue = new PartialAttributeType(); }
public GetResponse Get(GetRequest request) { if (request == null) { throw new ArgumentNullException("request"); } Message getRequest = null; bool isBaseObjectSearchRequest = false; lock (request) { if (request.BaseObjectSearchRequest == null || request.BaseObjectSearchRequest.AttributeTypes.Count == 0) { getRequest = Message.CreateMessage(MessageVersion.Default, Constants.WsTransfer.GetAction); } else { isBaseObjectSearchRequest = true; getRequest = Message.CreateMessage(MessageVersion.Default, Constants.WsTransfer.GetAction, request.BaseObjectSearchRequest, new ClientSerializer(typeof(BaseObjectSearchRequest))); ClientHelper.AddImdaHeaders(request as ImdaRequest, getRequest); } ClientHelper.AddRmHeaders(request as WsTransfer.TransferRequest, getRequest); } Message getResponse = Get(getRequest); if (getResponse.IsFault) { // handle fault will throw a .NET exception ClientHelper.HandleFault(getResponse); } GetResponse getResponseTyped = new GetResponse(); if (isBaseObjectSearchRequest) { BaseObjectSearchResponse baseObjectSearchResponse = getResponse.GetBody <BaseObjectSearchResponse>(new ClientSerializer(typeof(BaseObjectSearchResponse))); getResponseTyped.BaseObjectSearchResponse = baseObjectSearchResponse; } else { // we manually construct the partial attributes as if the client had selected all attributes // the purpose is to unify the API of the get request XmlNode retObject = getResponse.GetBody <XmlNode>(new ClientSerializer(typeof(XmlNode))); Dictionary <String, List <XmlNode> > seenAttributes = new Dictionary <string, List <XmlNode> >(); foreach (XmlNode child in retObject.ChildNodes) { if (child.NodeType == XmlNodeType.Element) { if (seenAttributes.ContainsKey(child.Name) == false) { seenAttributes[child.Name] = new List <XmlNode>(); } seenAttributes[child.Name].Add(child); } } getResponseTyped.BaseObjectSearchResponse = new BaseObjectSearchResponse(); foreach (KeyValuePair <String, List <XmlNode> > item in seenAttributes) { PartialAttributeType partialAttribute = new PartialAttributeType(); partialAttribute.Values.AddRange(item.Value); } } return(getResponseTyped); }