public async Task <Task> OnDeleteParticipant(TournamentMember member, int tournamentId) { string api_key = Configuration.GetValue <string>("ConnectionStrings:Challonge_Key"); string url = String.Format("https://api.challonge.com/v1/tournaments/{1}/participants/{2}.json?api_key={0}", api_key, tournamentId, member.ExternalID); //var request = new HttpRequestMessage(HttpMethod.Post, url); var client = _clientFactory.CreateClient(); var response = await client.DeleteAsync(url); using var responseStream = await response.Content.ReadAsStreamAsync(); var reponseString = await response.Content.ReadAsStringAsync(); try { var data = await JsonSerializer.DeserializeAsync <TournamentItem>(responseStream); } catch (Exception ex) { string exce = ex.Message; } return(Task.CompletedTask); }
public async Task <Task> LeaveTournament([Bind("TournamentMemberId", "FkTeam", "FkTournament")] TournamentMember tournamentMember) { var tournament = _context.Tournament.Where(x => x.TournamentId == tournamentMember.FkTournament).FirstOrDefault(); var deleteMember = _context.TournamentMember.FirstOrDefault(x => x.TournamentMemberId == tournamentMember.TournamentMemberId); await chall.OnDeleteParticipant(deleteMember, tournament.ExternalID); _context.TournamentMember.Remove(deleteMember); await _context.SaveChangesAsync(); return(Task.CompletedTask); }
public async Task <Task> Tournament([Bind("TournamentMemberId", "FkTeam", "FkTournament")] TournamentMember tournamentMember) { var tournament = await _context.Tournament.FindAsync(tournamentMember.FkTournament); var team = await _context.Team.FindAsync(tournamentMember.FkTeam); if (ModelState.IsValid) { tournamentMember.ExternalID = await chall.OnPostParticipant(tournament.ExternalID, team.Name); _context.Add(tournamentMember); await _context.SaveChangesAsync(); } return(Task.CompletedTask); }
public async Task <IActionResult> Tournament(int id) { var tournaments = _context.Tournament.Include(t => t.TournamentMember); var tournament = await tournaments.Where(t => t.TournamentId == id).FirstOrDefaultAsync(); var tournamentTeams = _context.TournamentMember.Where(x => x.FkTournament == id); var tournamentMembers = from first in _context.Team join second in tournamentTeams on first.TeamId equals second.FkTeam select first; var user = GetCurrentUser(); var userTeams = _context.Team.Where(x => x.TeamMember.Any(y => y.FkUser == user.UserId) && x.FkGameType == tournament.FkGameType); var tournamentMember = new TournamentMember(); if (tournamentTeams.Count() > 0) { var alreadyParticipant = from first in tournamentTeams join second in userTeams on first.FkTeam equals second.TeamId select first; tournamentMember = alreadyParticipant.FirstOrDefault(); } if (tournamentMember != null) { ViewData["myTeam"] = _context.Team.FirstOrDefault(x => x.TeamId == tournamentMember.FkTeam); } var teams = new SelectList(userTeams, "TeamId", "Name"); var teamsWithMembers = new List <TeamWithMembers>(); var justAList = tournamentMembers.ToList(); foreach (var item in justAList) { teamsWithMembers.Add(new TeamWithMembers(_context.TeamMember.Where(p => p.FkTeam == item.TeamId).Include(x => x.FkUserNavigation).ToList(), item)); } ViewData["tournamentTeams"] = teamsWithMembers; TournamentData data = new TournamentData(tournament, teams, tournamentMember); return(View(data)); }
public TournamentData(Tournament tournament, SelectList teams, TournamentMember participant) { Tournament = tournament; Teams = teams; TournamentMember = participant; }