Пример #1
0
        public ActionResult ManagersList(ManagersListViewModel model)
        {
            var viewModel = this.GetManagersListViewModel(model.CurrentPageNumber,
                model.SearchLogin, model.SearchName, model.SearchPosition);

            return View(viewModel);
        }
Пример #2
0
        private ManagersListViewModel GetManagersListViewModel(int pageNumber,
            string searchLogin, string searchName, string searchPosititon)
        {
            int itemsInPage = 10;

            var list = _managerService.GetList();

            {
                if (!string.IsNullOrEmpty(searchLogin))
                {
                    list = list.Where(x => x.Login.Contains(searchLogin)).ToList();
                }

                if (!string.IsNullOrEmpty(searchName))
                {
                    list = list.Where(x => x.Name.Contains(searchName)).ToList();
                }

                if (!string.IsNullOrEmpty(searchPosititon))
                {
                    list = list.Where(x => x.Position.Contains(searchPosititon)).ToList();
                }
            }

            if (list.Count == 0)
            {
                return new ManagersListViewModel()
                {
                    SearchResult = false
                };
            }

            int startRange = pageNumber * 10 - itemsInPage;
            int allPageCount = list.Count / itemsInPage;
            int ost = list.Count % itemsInPage;
            if (ost != 0) { allPageCount++; }

            int selectCount = ((pageNumber >= allPageCount && ost != 0) ? ost : itemsInPage);

            if (list.Count != 0)
            {
                list = list.OrderBy(x => x.Login).ToList();
                list = list.GetRange(startRange, selectCount);
            }

            var viewModel = new ManagersListViewModel()
            {
                Managers = list.Select(
                    manager => new ManagerViewModel()
                    {
                        Id = manager.Id,
                        Name = manager.Name,
                        Position = manager.Position
                    }).ToList(),

                CurrentPageNumber = pageNumber,
                AllPageCount = allPageCount,
                ItemsPerPage = itemsInPage,
                SearchLogin = searchLogin,
                SearchName = searchName,
                SearchPosition = searchPosititon,
                SearchResult = true
            };

            return viewModel;
        }