// 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")); }