public ActionResult ManagersList(ManagersListViewModel model) { var viewModel = this.GetManagersListViewModel(model.CurrentPageNumber, model.SearchLogin, model.SearchName, model.SearchPosition); return View(viewModel); }
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; }