public void FilterTest() { FieldFilter fieldFilter1 = new FieldFilter(); fieldFilter1.Name = "LogIn"; fieldFilter1.Value = "te"; FieldFilter fieldFilter2 = new FieldFilter(); fieldFilter2.Name = "LogIn"; fieldFilter2.Value = "cool"; FieldFilter fieldFilter3 = new FieldFilter(); fieldFilter2.Name = "LogIn"; fieldFilter2.Value = "14"; SortFilter sortFilter = new SortFilter(); sortFilter.SortOrder = "LogIn"; List<FieldFilter> list = new List<FieldFilter>(); list.Add(fieldFilter1); list.Add(fieldFilter2); list.Add(fieldFilter3); IEnumerable<Account> l = repository.Get(1, 3, list,sortFilter); foreach(Account acc in l) { Log.Write(acc.Login); } }
private IEnumerable<Account> GetSorted(SortFilter sortFilter) { if(String.IsNullOrWhiteSpace(sortFilter.SortOrder)) { accountsPerPages.OrderBy(acc => acc.Id); return accountsPerPages; } switch (sortFilter.SortOrder) { case "LogIn": accountsPerPages = accountsPerPages.OrderBy(acc => acc.Login); break; case "LogInDesc": accountsPerPages = accountsPerPages.OrderByDescending(acc => acc.Login); break; case "Mail": accountsPerPages = accountsPerPages.OrderBy(acc => acc.Mail); break; case "MailDesc": accountsPerPages = accountsPerPages.OrderByDescending(acc => acc.Mail); break; case "Role": accountsPerPages = accountsPerPages.OrderBy(acc => acc.Role); break; case "RoleDesc": accountsPerPages = accountsPerPages.OrderByDescending(acc => acc.Role); break; default: accountsPerPages = accountsPerPages.OrderBy(acc => acc.Id); break; } return accountsPerPages; }
public IEnumerable<Account> Get(int page, int pageSize, List<FieldFilter> fieldFilter, SortFilter sortFilter) { Func<Account,bool> fieldExp = CreateLabmdaFieldFilter(fieldFilter); try { accountsPerPages = database.Account. Select(item => item). Where(fieldExp). Skip((page - 1) * pageSize). Take(pageSize). AsEnumerable(); accountsPerPages = GetSorted(sortFilter); } catch (Exception e) { Log.Write(e); } return accountsPerPages; }