Пример #1
0
        // GET: Meetings
        public async Task <IActionResult> Index(int?id, int?SpeakerID)
        {
            var viewModel = new MeetingIndexData();

            viewModel.Meetings = await _context.Meeting


                                 .Include(i => i.Topic)
                                 .Include(i => i.SpeechDate)

                                 .AsNoTracking()
                                 .OrderBy(i => i.SpeechDate)
                                 .ToListAsync();

            return(View(viewModel));
        }
Пример #2
0
        // GET: Meetings
        public async Task <IActionResult> Index(string sortOrder, string currentFilter, string searchString, int?pageNumber, int?id)
        {
            ViewData["CurrentSort"] = sortOrder;
            if (String.IsNullOrEmpty(sortOrder))
            {
                sortOrder = "date_desc";
            }
            ViewData["DateSortParm"] = sortOrder == "Date" ? "date_desc" : "Date";
            ViewData["NameSortParm"] = sortOrder == "Name" ? "name_desc" : "Name";

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

            ViewData["CurrentFilter"] = searchString;

            var meetings = from s in _context.Meetings
                           select s;

            if (!String.IsNullOrEmpty(searchString))
            {
                meetings = meetings.Where(s => s.Conducting.Contains(searchString) ||
                                          s.Invocation.Contains(searchString) ||
                                          s.OpeningSong.Contains(searchString) ||
                                          s.IntermediateSong.Contains(searchString) ||
                                          s.ClosingSong.Contains(searchString) ||
                                          s.Benediction.Contains(searchString));
            }
            switch (sortOrder)
            {
            case "date_desc":
                meetings = meetings.OrderByDescending(s => s.MeetingDate);
                break;

            case "Name":
                meetings = meetings.OrderBy(s => s.Conducting);
                break;

            case "name_desc":
                meetings = meetings.OrderByDescending(s => s.Conducting);
                break;

            default:
                meetings = meetings.OrderBy(s => s.MeetingDate);
                break;
            }

            int pageSize  = 3;
            var viewModel = new MeetingIndexData();

            viewModel.Meetings = await PaginatedList <Meeting> .CreateAsync(meetings
                                                                            .Include(i => i.Speakers).AsNoTracking(), pageNumber ?? 1, pageSize);

            if (id != null)
            {
                ViewData["MeetingID"] = id.Value;
                Meeting meeting = viewModel.Meetings.Where(i => i.ID == id.Value).Single();
                viewModel.Speakers = meeting.Speakers;
            }

            return(View(viewModel));
        }