//Is called by the URL ~/Browse/Details?id=<id> public async Task <IActionResult> Details(Guid id) { //Getting data from db var eventUsers = await _eventUserService.GetEvent_UsersAsync(); var eventOwners = await _eventOwnerService.GetEvent_OwnersAsync(); var events = await _eventService.GetEventsAsync(); var applicationUsers = await _applicationUserService.GetApplicationUsersAsync(); //Selecting the owner of the event with id == id var eventOwner = eventOwners.Where(x => x.Event == id).First(); //Sending data to view ViewData["Event"] = events.Where(x => x.Id == id).First(); ViewData["EventUsers"] = eventUsers.Where(x => x.Event == id); ViewData["Owner"] = applicationUsers.Where(x => x.Email == eventOwner.Owner).First(); return(View()); }
//----------------------------------------------Project-Made Methods //Used to list all the events the user has created, similar to "~/Browse" //Select the specific events for the user in the view. public async Task <IActionResult> Delete(Guid eventId, string userId) { //Error checking if (!ModelState.IsValid) { return(BadRequest(ModelState)); } int success = 0; //Gets the specific event to delete var allEvents = await _eventService.GetEventsAsync(); var events = allEvents.Where(x => x.Id == eventId); if (events.Count() != 1) { ViewData["Success"] = success == 1 ? "true" : "false"; return(View()); } var eventToDelete = events.First(); //Gets the user who is trying to delete the event var allUsers = await _applicationUserService.GetApplicationUsersAsync(); var users = allUsers.Where(x => x.Id == userId); if (users.Count() != 1) { ViewData["Success"] = success == 1 ? "true" : "false"; return(View()); } var user = users.First(); //Gets the Event_Owner of the event var allEventOwners = await _event_OwnerService.GetEvent_OwnersAsync(); var eventOwners = allEventOwners.Where(x => x.Owner == user.Email && x.Event == eventId); if (eventOwners.Count() != 1) { ViewData["Success"] = success == 1 ? "true" : "false"; return(View()); } var eventOwner = eventOwners.First(); //Removes all the Event_Users fromthe event var allEventUsers = await _event_UserService.GetEvent_UsersAsync(); var eventUsers = allEventUsers.Where(x => x.Event == eventId); foreach (Event_User eventUser in eventUsers) { _context.Event_Users.Remove(eventUser); success = await _context.SaveChangesAsync(); } //Deletes the event _context.Events.Remove(eventToDelete); success = await _context.SaveChangesAsync(); ViewData["Success"] = success == 1 ? "true" : "false"; ViewData["DeletedEvent"] = eventToDelete; return(View()); }