public void GetByFilter_OffsetLimitAndFilter_FilterResult() { m_roleRepository.Add(new Role() { Name = "TEST1", Description = "DESCR1" }); m_roleRepository.Add(new Role() { Name = "TEST2", Description = "DESCR2" }); m_roleRepository.Add(new Role() { Name = "TEST3", Description = "DESCR3" }); m_unitOfWork.Commit(); Expression<Func<Role, bool>> query = null; RoleFilter filter = new RoleFilter(); query = GetRoleFilterQuery(filter); Assert.AreEqual(3, m_target.Get(0, int.MaxValue, query).TotalCount); filter = new RoleFilter() { Name = "1" }; filter.Sanitize(); query = GetRoleFilterQuery(filter); Assert.AreEqual(1, m_target.Get(0, int.MaxValue, query).TotalCount); filter = new RoleFilter() { Description = "3" }; filter.Sanitize(); query = GetRoleFilterQuery(filter); Assert.AreEqual(1, m_target.Get(0, int.MaxValue, query).TotalCount); filter = new RoleFilter() { Name = "1", Description = "2" }; filter.Sanitize(); query = GetRoleFilterQuery(filter); Assert.AreEqual(0, m_target.Get(0, int.MaxValue, query).TotalCount); }
private Expression<Func<Role, bool>> GetRoleFilterQuery(RoleFilter filter) { Expression<Func<Role, bool>> query = (f) => (filter.Description == null || f.Description.ToLower().Contains(filter.Description)) && (filter.Name == null || f.Name.ToLower().Contains(filter.Name)); return query; }