コード例 #1
0
ファイル: Test.cs プロジェクト: denismaster/dotnet01
 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);
     }
 }
コード例 #2
0
        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;
        }
コード例 #3
0
        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;
        }