Exemplo n.º 1
0
        public async Task <IActionResult> Index(string sortString, string searchString, string currentFilter, int?page)
        {
            ViewData["SortByName"]    = string.IsNullOrEmpty(sortString) ? "descendName" : "";
            ViewData["SortBySchool"]  = sortString == "school" ? "descendSchool" : "school";
            ViewData["currentFilter"] = searchString;

            ViewData["CurrentSort"] = sortString;

            ViewData["CountAll"]      = _guestsGuestRepository.GetAllGuests().Count();
            ViewData["CountVisitors"] = _guestsGuestRepository
                                        .GetAllGuests()
                                        .Count(guest => guest.Member == "visitor");
            ViewData["CountWorkers"] = _guestsGuestRepository
                                       .GetAllGuests()
                                       .Count(guest => guest.Member == "worker");

            ViewData["CountMembers"] = _guestsGuestRepository
                                       .GetAllGuests()
                                       .Count(guest => guest.Member == "member");

            if (searchString != null)
            {
                page = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            IQueryable <Guest> guests = _guestsGuestRepository.GetAllGuests();

            if (!string.IsNullOrEmpty(searchString))
            {
                guests = _guestsGuestRepository.GeneralSearch(searchString);
            }

            switch (sortString)
            {
            case "descendName":
                guests = guests.OrderBy(guest => guest.FirstName);
                break;

            case "school":
                guests = guests.OrderByDescending(guest => guest.School);
                break;

            default:
                guests = guests.OrderBy(guest => guest.LastName);
                break;
            }

            #region Guest ViewModel
            //var guestVM = guests
            //    .Select(guest => new Guest()
            //    {
            //        Id = guest.Id,
            //        FirstName = guest.FirstName,
            //        LastName = guest.LastName,
            //        AgeGroup = guest.AgeGroup,
            //        Gender = guest.Gender,
            //        MaritalStatus = guest.MaritalStatus,
            //        Phone = guest.Phone,
            //        Email = guest.Email,
            //        School = guest.School,
            //        YearOfStudy = guest.YearOfStudy,
            //        Member = guest.Member,
            //        PrayerRequest = guest.PrayerRequest,



            //    });
            #endregion

            const int pageSize = 10;
            return(View(await PaginatedList <Guest> .CreateAsync(guests.AsNoTracking(), page ?? 1, pageSize)));
        }
Exemplo n.º 2
0
 public ActionResult List()
 {
     ViewBag.GuestList = guestRepository.GetAllGuests();
     return(View());
 }
 public async Task <IEnumerable <Guest> > Get()
 {
     return(await _guestRepository.GetAllGuests());
 }