public static bool TryParse(string rbacQuery, out RbacQuery.RbacQueryProcessor queryProcessor) { Match match = RbacQuery.CmdletQueryProcessor.regex.Match(rbacQuery); if (match.Success) { queryProcessor = new RbacQuery.CmdletQueryProcessor(match); return(true); } queryProcessor = null; return(false); }
public RbacQuery(string rbacQuery, ADRawEntry adRawEntry) { if (string.IsNullOrEmpty(rbacQuery)) { throw new ArgumentNullException("rbacQuery"); } if (!RbacQuery.WellKnownQueryProcessors.TryGetValue(rbacQuery, out this.queryProcessor) && !RbacQuery.ConditionalQueryProcessors.TryParse(rbacQuery, out this.queryProcessor) && !RbacQuery.CmdletQueryProcessor.TryParse(rbacQuery, out this.queryProcessor)) { throw new ArgumentException(string.Format("'{0}' is not a valid RBAC query.", rbacQuery)); } if (adRawEntry != null) { RbacQuery.CmdletQueryProcessor cmdletQueryProcessor = this.queryProcessor as RbacQuery.CmdletQueryProcessor; if (cmdletQueryProcessor != null) { cmdletQueryProcessor.TargetObject = adRawEntry; } } }