public async Task <IActionResult> Broadcasts(bool upcoming = true, int page = 1) { var filter = new BroadcastFilter(page) { Upcoming = upcoming }; var broadcastList = await _mailService.PageBroadcastsAsync(filter); var paginateModel = new PaginateViewModel { ItemCount = broadcastList.Count, CurrentPage = page, ItemsPerPage = filter.Take.Value }; if (paginateModel.PastMaxPage) { return(RedirectToRoute( new { page = paginateModel.LastPage ?? 1 })); } var viewModel = new BroadcastListViewModel { Broadcasts = broadcastList.Data, PaginateModel = paginateModel, Upcoming = upcoming }; return(View(viewModel)); }
// List the broadcasts to the user public IActionResult List() { if (!_auth.Authorise(RolesEnum.Admin, _context)) // Authenticate the user { Redirect("~/Project/Dashboard"); } var vm = new BroadcastListViewModel(); // Get a new view model var authoredList = new List <AuthoredBroadcast>(); // Instanciate the authored list // Go through each broadcast foreach (var broadcast in _context.Broadcasts) { // Create a new authored broadcast var temp = new AuthoredBroadcast() { Broadcast = broadcast }; // Update username field temp.Username = _context.Users.Any(u => u.UserId == broadcast.UserId) ? _context.Users.First(u => u.UserId == broadcast.UserId).UserName : "******"; // Add the new broadcast to the authored list authoredList.Add(temp); } // Add the authored list to the view model vm.BroadcastsList = authoredList; // Return the List view return(View(vm)); }
public async Task <IActionResult> Index(string sortOrder, string currentFilter, string searchString) { ViewBag.CurrentSort = sortOrder; ViewBag.NameSortParm = string.IsNullOrEmpty(sortOrder) ? "name_desc" : ""; ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date"; if (sortOrder == null) { sortOrder = "Date"; } ViewBag.CurrentFilter = searchString; var model = _broadcastRepository.GetAllBroadcasts(); var List = new List <BroadcastListViewModel>(); foreach (var broadCast in model) { var user = await userManager.FindByIdAsync(broadCast.UserId); var broadcast = new BroadcastListViewModel { BroadcastId = broadCast.BroadcastId, Date = broadCast.Date, Text = broadCast.Text, UserId = broadCast.UserId, PhotoPath = user.PhotoPath, FirstName = user.FirstName, LastName = user.LastName }; List.Add(broadcast); } ; IEnumerable <BroadcastListViewModel> sortedlist = Enumerable.Empty <BroadcastListViewModel>(); if (!string.IsNullOrEmpty(searchString)) { sortedlist = List.Where(B => B.FirstName.ToLower().Contains(searchString.ToLower()) || B.LastName.ToLower().Contains(searchString.ToLower())); } else { sortedlist = List; }; switch (sortOrder) { case "name_desc": sortedlist = sortedlist.OrderByDescending(s => s.FirstName); break; case "Date": sortedlist = sortedlist.OrderBy(s => s.Date); break; case "date_desc": sortedlist = sortedlist.OrderByDescending(s => s.Date); break; default: // Name ascending sortedlist = sortedlist.OrderBy(s => s.LastName); break; } return(View(sortedlist)); }