private string BuildConditionFilter(List<SqlParameter> parameters)
{
StringBuilder filterBuilder = new StringBuilder();
int count = 1;
foreach (SearchCondition condition in MetadataFilters)
{
string conditionSqlQuery;
condition.Index = count;
count++;
if (condition.Index == 1)
{
if (MetadataFilters.Count > 1)
{
filterBuilder.Append("(");
}
}
if (condition.ValidateCondition(out conditionSqlQuery))
{
filterBuilder.Append(conditionSqlQuery);
if (condition.Index < MetadataFilters.Count)
{
filterBuilder.Append("OR");
}
}
if (MetadataFilters.Count == condition.Index)
{
if (MetadataFilters.Count > 1)
{
filterBuilder.Append(") ");
}
filterBuilder.Append("AND");
}
parameters.Add(condition.MetadataNameParameter);
parameters.Add(condition.SearchConditionParameter);
}
return filterBuilder.ToString();
}
}