private IReadOnlyCollection <string> IdentifyRequestedColumns(IRetrievalParameters parameters) { if (null == parameters) { throw new ArgumentNullException(nameof(parameters)); } IEnumerable <string> requestedAttributes = this.ColumnNames; if (parameters.RequestedAttributePaths != null && parameters.RequestedAttributePaths.Any()) { requestedAttributes = requestedAttributes .Where( (string candidateItem) => parameters .RequestedAttributePaths .Any( (string requestedItem) => string.Equals(candidateItem, requestedItem, StringComparison.Ordinal))) .ToArray(); } if (parameters.ExcludedAttributePaths != null) { requestedAttributes = requestedAttributes .Where( (string candidateItem) => !parameters .ExcludedAttributePaths .Any( (string excludedItem) => string.Equals(candidateItem, excludedItem, StringComparison.Ordinal))) .ToArray(); } if ( FileProvider .SchemaIdentifiersGroup .Value .Any( (string item) => string.Equals(item, parameters.SchemaIdentifier, StringComparison.Ordinal)) && requestedAttributes .Any( (string item) => string.Equals(AttributeNames.Members, item, StringComparison.Ordinal)) ) { throw new NotSupportedException(FileProviderResources.ExceptionRetrievingGroupMembersNotSupported); } IReadOnlyCollection <string> results = requestedAttributes.ToArray(); return(results); }
private static void Validate(IRetrievalParameters parameters) { if (null == parameters) { throw new ArgumentNullException(AmazonWebServicesProvider.ArgumentNameParameters); } if (!parameters.SchemaIdentifier.Equals(SchemaIdentifiers.WindowsAzureActiveDirectoryGroup, StringComparison.Ordinal)) { return; } if ( parameters.RequestedAttributePaths != null && parameters .RequestedAttributePaths .Any( (string item) => string.Equals(item, AttributeNames.Members)) ) { throw new NotSupportedException(ProvisioningAgentResources.ExceptionRetrievingGroupMembersNotSupported); } if ( ( null == parameters.RequestedAttributePaths || !parameters.RequestedAttributePaths.Any() ) && !parameters .ExcludedAttributePaths .Any( (string item) => string.Equals(item, AttributeNames.Members)) ) { throw new NotSupportedException(ProvisioningAgentResources.ExceptionRetrievingGroupMembersNotSupported); } }
private IReadOnlyCollection<string> IdentifyRequestedColumns(IRetrievalParameters parameters) { if (null == parameters) { throw new ArgumentNullException(FileProvider.ArgumentNameParameters); } IEnumerable<string> requestedAttributes = this.attributeNames; if (parameters.RequestedAttributePaths != null && parameters.RequestedAttributePaths.Any()) { requestedAttributes = requestedAttributes .Where( (string candidateItem) => parameters .RequestedAttributePaths .Any( (string requestedItem) => string.Equals(candidateItem, requestedItem, StringComparison.Ordinal))) .ToArray(); } if (parameters.ExcludedAttributePaths != null) { requestedAttributes = requestedAttributes .Where( (string candidateItem) => !parameters .ExcludedAttributePaths .Any( (string excludedItem) => string.Equals(candidateItem, excludedItem, StringComparison.Ordinal))) .ToArray(); } if ( FileProvider .SchemaIdentifiersGroup .Value .Any( (string item) => string.Equals(item, parameters.SchemaIdentifier, StringComparison.Ordinal)) && requestedAttributes .Any( (string item) => string.Equals(AttributeNames.Members, item, StringComparison.Ordinal)) ) { throw new NotSupportedException(ProvisioningAgentResources.ExceptionRetrievingGroupMembersNotSupported); } IReadOnlyCollection<string> results = requestedAttributes.ToArray(); return results; }