private MessagesViewModel GetMessagesViewModelFromPage(int pageNumber) { int itemsInPage = 10; List<Message> list = null; list = User.IsInRole("User") ? _messageService.GetFromUser(Guid.Parse(User.Identity.GetUserId())) : _messageService.GetFromManager(Guid.Parse(User.Identity.GetUserId())); if (list == null) { return null; } 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.).ToList(); list = list.GetRange(startRange, selectCount); } var model = new MessagesViewModel() { Messages = list.Select(msg => new MessageViewModel() { Id = msg.Id, Text = msg.Text, UserInfo = new UserInfoPartialViewModel() { Name = msg.Persons.Name } }).ToList(), Page = pageNumber, AllPageCount = allPageCount, ItemsPerPage = itemsInPage }; return model; }
// GET: Messages public ActionResult Index(MessagesViewModel model) { var viewModel = GetMessagesViewModelFromPage(model.Page); return View(viewModel); }