コード例 #1
0
        public ActionResult GetAccounts(string filter)
        {
            Func <Account, bool> searchFor = null;

            if (!string.IsNullOrEmpty(filter))
            {
                searchFor = w => w.FirstName.ToLower().Contains(filter.ToLower()) || w.LastName.Contains(filter.ToLower()) || w.Email.Contains(filter.ToLower());
            }
            else
            {
                searchFor = w => true;
            }

            AdminAccountsViewModel accounts = new AdminAccountsViewModel();

            accounts.Accounts = this.administrationProvider.GetAllAccounts(searchFor);
            accounts.Filter   = filter;

            return(this.PartialView("Partial/Accounts", accounts));
        }
コード例 #2
0
        public IActionResult MainAdmin(int?card, string email, int?account, int page = 1, AccountsSortState sortOrder = AccountsSortState.AccIdAsc)
        {
            int pageSize = 10;
            IQueryable <Account> source = _context.Accounts.Include(x => x.Card.User);

            if (card != null && card != 0)
            {
                source = source.Where(x => x.CardId == card);
            }
            if (account != null && account != 0)
            {
                source = source.Where(x => x.AccountId == account);
            }
            if (email != null)
            {
                source = source.Where(x => x.Card.User.Email.Contains(email));
            }

            switch (sortOrder)
            {
            case AccountsSortState.AccIdAsc:
                source = source.OrderBy(x => x.AccountId);
                break;

            case AccountsSortState.AccIdDesc:
                source = source.OrderByDescending(x => x.AccountId);
                break;

            case AccountsSortState.CardIdAsc:
                source = source.OrderBy(x => x.CardId);
                break;

            case AccountsSortState.CardIdDesc:
                source = source.OrderByDescending(x => x.CardId);
                break;

            case AccountsSortState.EmailAsc:
                source = source.OrderBy(x => x.Card.User.Email);
                break;

            case AccountsSortState.EmailDesc:
                source = source.OrderByDescending(x => x.Card.User.Email);
                break;

            case AccountsSortState.BalanceAsc:
                source = source.OrderBy(x => x.Balance);
                break;

            case AccountsSortState.BalanceDesc:
                source = source.OrderByDescending(x => x.Balance);
                break;

            case AccountsSortState.StatusAsc:
                source = source.OrderBy(x => x.IsBlocked);
                break;

            case AccountsSortState.StatusDesc:
                source = source.OrderByDescending(x => x.IsBlocked);
                break;

            default:
                source = source.OrderBy(x => x.AccountId);
                break;
            }



            var                    count    = source.Count();
            var                    items    = source.Skip((page - 1) * pageSize).Take(pageSize);
            PageViewModel          pageView = new PageViewModel(count, page, pageSize);
            AdminAccountsViewModel ivm      = new AdminAccountsViewModel
            {
                PageViewModel   = pageView,
                SortViewModel   = new SortAccountsViewModel(sortOrder),
                FilterViewModel = new FilterAccountsViewModel(card, email, account),
                Accounts        = items
            };

            ViewBag.BlockedAccs = _context.Accounts.Where(acc => acc.IsBlocked);
            ViewBag.User        = _context.Users.FirstOrDefault(x => x.Email == User.Identity.Name).Name;
            return(View("MainAdmin", ivm));
        }