public void AddFilter(string filter)
{
if (string.IsNullOrEmpty(filter))
{
throw new ArgumentNullException(nameof(filter));
}
if (_filtersCount == 0)
{
_tableQuery.FilterString = filter;
}
else
{
// Combine filters
var stringBuilder = new StringBuilder(_tableQuery.FilterString.Length + filter.Length);
if (_filtersCount > 0)
{
if (_tableQuery.FilterString.Count(p => p == ' ') > 2)
{
stringBuilder.AppendFormat("({0})", _tableQuery.FilterString);
}
else
{
stringBuilder.Append(_tableQuery.FilterString);
}
}
stringBuilder.Append(" and ");
if (filter.Count(p => p == ' ') > 2)
{
stringBuilder.AppendFormat("({0})", filter);
}
else
{
stringBuilder.Append(filter);
}
_tableQuery.FilterString = stringBuilder.ToString();
}
_filtersCount++;
}