Пример #1
0
        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));
        }
Пример #3
0
        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));
        }