To be more specific, the following is what I need to achieve:
The following method returns a search result which has to be modified to retrieve result similar to the sql query - "select name, max(year) as year from qualification group by name"
protected override IPredicateExpression GetSearchPredicate()
{
PredicateExpression search = new PredicateExpression();
if(txtName.Text.Trim() != string.Empty)
search.AddWithAnd(PredicateFactory.Like(QualificationFieldIndex.Name, "%" + txtName.Text + "%"));
if(txtCode.Text.Trim() != string.Empty)
search.AddWithAnd(PredicateFactory.Like(QualificationFieldIndex.QualificationCode, "%" + txtCode.Text + "%"));
if(ucCertType.SelectedValue != string.Empty)
search.AddWithAnd(PredicateFactory.CompareValue(QualificationFieldIndex.CertificationTypeId, ComparisonOperator.Equal, int.Parse(ucCertType.SelectedValue)));
if(txtYear.Text != string.Empty && Utils.IsNumeric(txtYear.Text))
{
int year = int.Parse(txtYear.Text);
if (year < 100)
{
year += 2000;
if (year > DateTime.Now.Year)
year -= 100;
}
search.AddWithAnd(PredicateFactory.CompareValue(QualificationFieldIndex.Year, ComparisonOperator.Equal, year));
}
return search;
}
Thanks in advance.