private static SearchCondition Join(string condition, SearchCondition left, params SearchCondition[] right)
        {
            condition = condition.ToUpper();

            if (left.Operator != condition)
            {
                left = new SearchCondition { Operator = condition, Conditions = new List<SearchCondition> { left } };
            }

            left.Conditions.AddRange(right);
            return left;
        }
 public virtual Task<string[]> SearchAsync(SearchCondition criteria, bool uid = true)
 {
     return SearchAsync(criteria.ToString(), uid);
 }