private ICriteria BuildLookupCriteria(User user)
{
ICriteria lookupCriteria = Session.CreateCriteria(typeof(User));
if (user.LoginId != null)
{
AddRestriction(lookupCriteria, "LoginId", user.LoginId, true);
}
if (user.Name != null)
{
AddRestriction(lookupCriteria, "Name.FirstName", user.Name.FirstName, false);
AddRestriction(lookupCriteria, "Name.LastName", user.Name.LastName, false);
}
if (user.Location != null)
{
AddRestriction(lookupCriteria, "Location.Country", user.Location.Country, false);
AddRestriction(lookupCriteria, "Location.City", user.Location.City, false);
AddRestriction(lookupCriteria, "Location.ZipCode", user.Location.ZipCode, false);
}
AddRestriction(lookupCriteria, "Gender", user.Gender, true);
if (user.Profile != null && !String.IsNullOrEmpty(user.Profile.ProfileText)){
Profile wildCardProfile = new Profile("%" + user.Profile.ProfileText + "%");
AddRestriction(lookupCriteria, "Profile", wildCardProfile, false);
}
return lookupCriteria;
}