Exemple #1
0
        public MemberIndexListViewModel GetMemberIndexListViewModel()
        {
            MemberIndexListViewModel vm = new MemberIndexListViewModel();

            vm.Members = ApplicationDbContext.MemberIndexViewModelMemberListItems.FromSql("EXECUTE Get_Member_Index_List").ToList();
            return(vm);
        }
Exemple #2
0
        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));
        }