private IQueryable <UserDto> GetUser(UserSearchModel searchModel = null) { IQueryable <UserDto> list = null; int?userIdOnline = Session[SessionVariables.UserDetails].GetUserIdFromSession(); if ((searchModel.IsNull() || (!searchModel.HasAnyValue()))) { list = _userService.GetAll().Where(u => u.UserID != userIdOnline); } else { var predicate = PredicateBuilder.True <UserDto>(); var hasOtherFilter = false; if (!searchModel.UserName.IsNull()) { hasOtherFilter = true; predicate = predicate.And(a => a.UserName.Contains(searchModel.UserName) && a.UserID != userIdOnline); } if (!searchModel.UserTypeId.IsNull()) { hasOtherFilter = true; predicate = predicate.And(a => a.UserTypeID == searchModel.UserTypeId && a.UserID != userIdOnline); } if (!searchModel.isActive.IsNull()) { hasOtherFilter = true; if (searchModel.isActive == "true") { predicate = predicate.And(a => a.IsActive && a.UserID != userIdOnline); } else { predicate = predicate.And(a => !a.IsActive && a.UserID != userIdOnline); } } if (!searchModel.BranchId.IsNull()) { hasOtherFilter = true; predicate = predicate.And(a => a.BranchId == searchModel.BranchId && a.UserID != userIdOnline); } list = _userService.GetAll().AsExpandable().Where(predicate); } return(list); }