public MemberIndexListViewModel GetMemberIndexListViewModel() { MemberIndexListViewModel vm = new MemberIndexListViewModel(); vm.Members = ApplicationDbContext.MemberIndexViewModelMemberListItems.FromSql("EXECUTE Get_Member_Index_List").ToList(); return(vm); }
public IActionResult Index(string sortOrder, string searchString, int page = 1) { MemberIndexListViewModel vm = unitOfWork.Members.GetMemberIndexListViewModel(); vm.CurrentSort = sortOrder; vm.MemberLastNameSort = String.IsNullOrEmpty(sortOrder) ? "lastName_desc" : ""; vm.MemberFirstNameSort = sortOrder == "FirstName" ? "firstName_desc" : "FirstName"; vm.IdNumberSort = sortOrder == "IDNumber" ? "idNumber_desc" : "IDNumber"; vm.PositionNameSort = sortOrder == "PositionName" ? "positionName_desc" : "PositionName"; vm.CurrentFilter = searchString; if (!string.IsNullOrEmpty(searchString)) { char[] arr = searchString.ToCharArray(); arr = Array.FindAll <char>(arr, (c => (char.IsLetterOrDigit(c) || char.IsWhiteSpace(c) || c == '-'))); string lowerString = new string(arr); lowerString = lowerString.ToLower(); vm.Members = vm.Members .Where(x => x.LastName.ToLower().Contains(lowerString) || x.FirstName.ToLower().Contains(lowerString) || x.PositionName.ToLower().Contains(lowerString) || x.IdNumber.Contains(lowerString)); } switch (sortOrder) { case "lastName_desc": vm.Members = vm.Members.OrderByDescending(x => x.LastName); break; case "firstName_desc": vm.Members = vm.Members.OrderByDescending(x => x.FirstName); break; case "FirstName": vm.Members = vm.Members.OrderBy(x => x.FirstName); break; case "idNumber_desc": vm.Members = vm.Members.OrderByDescending(x => x.IdNumber); break; case "IDNumber": vm.Members = vm.Members.OrderBy(x => x.IdNumber); break; case "PositionName": vm.Members = vm.Members.OrderBy(x => x.PositionName); break; case "positionName_desc": vm.Members = vm.Members.OrderByDescending(x => x.PositionName); break; default: vm.Members = vm.Members.OrderBy(x => x.LastName); break; } vm.PagingInfo = new PagingInfo { CurrentPage = page, ItemsPerPage = PageSize, TotalItems = searchString == null?unitOfWork.Members.GetAll().Count() : vm.Members.Count() }; ViewBag.Title = "BlueDeck Members Index"; ViewBag.Status = TempData["Status"]?.ToString() ?? ""; ViewBag.Message = TempData["Message"]?.ToString() ?? ""; vm.Members = vm.Members.Skip((page - 1) * PageSize).Take(PageSize); return(View(vm)); }