public async Task <IViewComponentResult> InvokeAsync(int teamId, int userId) { ViewData["CurrentUser"] = GetCurrentUser(); var team = _context.Team.Find(teamId); ViewData["TeamOwner"] = _context.User.Where(x => x.UserId == team.FkOwner).FirstOrDefault(); if (userId > 0) { var user = _context.TeamMember.FirstOrDefault(x => x.FkUser == userId && x.FkTeam == teamId); if (user == null) { var invites = _context.TeamInvitation.Where(x => x.FkUser == userId); _context.RemoveRange(invites); _context.TeamMember.Add(new TeamMember { FkTeam = teamId, FkUser = userId }); await _context.SaveChangesAsync(); } else { _context.TeamMember.Remove(user); await _context.SaveChangesAsync(); } } var teamMemberList = _context.TeamMember.Where(p => p.FkTeam == teamId).Include(x => x.FkUserNavigation); return(View(teamMemberList)); }
public async Task <IViewComponentResult> InvokeAsync(int eventId, int userId) { ViewData["CurrentUser"] = GetCurrentUser(); var eventItem = _context.Event.Find(eventId); ViewData["EventMax"] = eventItem.MaxParticipantAmt; ViewData["TeamOwner"] = _context.User.Where(x => x.UserId == eventItem.FkOwner).FirstOrDefault(); var eventMemberList = _context.Participant.Where(p => p.FkEvent == eventId).Include(x => x.FkUserNavigation); if (eventItem.MaxParticipantAmt > eventMemberList.Count()) { if (userId > 0) { var user = _context.Participant.FirstOrDefault(x => x.FkUser == userId && x.FkEvent == eventId); if (user == null) { var invites = _context.EventInvitation.Where(x => x.FkUser == userId); _context.RemoveRange(invites); _context.Participant.Add(new Participant { FkEvent = eventId, FkUser = userId }); await _context.SaveChangesAsync(); } else { _context.Participant.Remove(user); await _context.SaveChangesAsync(); } } } return(View(eventMemberList)); }
public async Task <IActionResult> DeleteConfirmed(int id) { var teamInvites = _context.TeamInvitation.Where(x => x.FkTeam == id); var teamMembers = _context.TeamMember.Where(x => x.FkTeam == id); var teamParticipations = _context.Participant.Where(x => x.FkTeam == id); var tournamentParticipations = _context.TournamentMember.Where(x => x.FkTeam == id).Include(x => x.FkTournamentNavigation); foreach (var item in tournamentParticipations) { await chall.OnDeleteParticipant(item, item.FkTournamentNavigation.ExternalID); } var team = await _context.Team.FindAsync(id); _context.RemoveRange(teamInvites); _context.RemoveRange(teamMembers); _context.RemoveRange(teamParticipations); _context.RemoveRange(tournamentParticipations); _context.Team.Remove(team); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }