// Publish a new broadcast or modify a broadcast
        public IActionResult Publish()
        {
            if (!_auth.Authorise(RolesEnum.Admin, _context)) // Authenticate the user
            {
                Redirect("~/Project/Dashboard");
            }

            var vm = new PublishBroadcastViewModel(); // New view model

            // Return the publish view
            return(View(vm));
        }
        public IActionResult AddBroadcast(PublishBroadcastViewModel vm)
        {
            if (!_auth.Authorise(RolesEnum.Admin, _context)) // Authenticate the user
            {
                Redirect("~/Project/Dashboard");
            }

            if (!_context.Broadcasts.Any(b => b.BroadcastId == vm.UpdateId)) // If there isn't a broadcast with that id
            {
                return(RedirectToAction("Publish"));                         // Kick back to publish page
            }
            // If The update id is null
            if (vm.UpdateId == null)
            {
                // Create new broadcast
                var userId = _context.Users.First(u => u.UserName == HttpContext.Session.GetString("Username")).UserId;

                // create a new broadcast
                var newBroadcast = new Broadcasts()
                {
                    Body   = vm.Body,
                    Title  = vm.Title,
                    UserId = userId
                };

                // add the new broadcast to the database
                _context.Broadcasts.Add(newBroadcast);
            }
            else
            {
                // Update existing broadcast

                if (vm.Title != null)
                {
                    _context.Broadcasts.First(i => i.BroadcastId == vm.UpdateId).Title = vm.Title;
                }

                if (vm.Body != null)
                {
                    _context.Broadcasts.First(i => i.BroadcastId == vm.UpdateId).Body = vm.Body;
                }

                _context.Broadcasts.First(i => i.BroadcastId == vm.UpdateId).UserId = _context.Users.First(u => u.UserName == HttpContext.Session.GetString("Username")).UserId;
            }

            // Save changes to the database
            _context.SaveChanges();

            // Return to the list view
            return(RedirectToAction("List"));
        }