public override string ToString() { StringBuilder filterDescription = new StringBuilder(); switch (FilterType) { case FilterType.APPROVED_SOFTWARE_LIST: filterDescription.Append("software is "); if (IsNegated) { filterDescription.Append("not in "); } else { filterDescription.Append("in "); } filterDescription.Append("the list '"); filterDescription.Append(ApprovedSoftwareListName); filterDescription.Append("'"); break; case FilterType.LOGICAL_AND: if (IsNegated) { filterDescription.Append("neither "); filterDescription.Append(Filter1.ToString()); filterDescription.Append(" nor "); filterDescription.Append(Filter2.ToString()); } else { filterDescription.Append("both "); filterDescription.Append(Filter1.ToString()); filterDescription.Append(" and "); filterDescription.Append(Filter2.ToString()); } break; case FilterType.LOGICAL_OR: if (IsNegated) { filterDescription.Append("not "); filterDescription.Append(Filter1.ToString()); filterDescription.Append(" and not "); filterDescription.Append(Filter2.ToString()); } else { filterDescription.Append("either "); filterDescription.Append(Filter1.ToString()); filterDescription.Append(" or "); filterDescription.Append(Filter2.ToString()); } break; } return(filterDescription.ToString()); }