public async Task <IActionResult> UpdateMatch(int idT, int rn, int idP1, string error = null) { Match match = await CallAPI.GetMatch(idT, rn, idP1); if (match.IdTournament == 0) { return(NotFound()); } var decksP1 = await CallAPI.GetDeckOfPlayer(match.IdTournament, match.IdPlayer1); ViewData["DecksP1"] = decksP1; var decksP2 = await CallAPI.GetDeckOfPlayer(match.IdTournament, match.IdPlayer2); ViewData["DecksP2"] = decksP2; if (!int.TryParse(HttpContext.Session.GetString("UserId"), out int IdUser) || (match.IdPlayer1 != IdUser && match.IdPlayer2 != IdUser)) { ViewData["Title"] = "Match"; return(View("~/Views/Tournoi/Match.cshtml", match)); } var empyParties = new List <ViewPartie> { new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie() }; if (match.Parties == null) { match.Parties = empyParties; } match.Parties = match.Parties.OrderBy(p => p.PartNumber).Concat(empyParties).Take((match.Tournament.DeckListNumber * 2) - 1).ToList(); List <ViewPartie> temp = new List <ViewPartie>(); int i = 1; foreach (var p in match.Parties) { if (p.PartNumber == 0) { p.PartNumber = i; i++; } else if (p.PartNumber >= i) { i = p.PartNumber + 1; } temp.Add(p); } match.Parties = temp; ViewBag.error = error; ViewData["Title"] = "Match"; return(View("~/Views/Tournoi/Match.cshtml", match)); }
public async Task <IActionResult> UpdateMatch([Bind("IdTournament, RoundNumber, IdPlayer1, IdPlayer2, Parties")] Match match) { var Parties = match.Parties; var retourApis = new List <RetourAPI>(); foreach (var p in Parties) { p.IdTournament = match.IdTournament; p.RoundNumber = match.RoundNumber; p.IdPlayer1 = match.IdPlayer1; p.IdPlayer2 = match.IdPlayer2; if (p.ResultPart != null) { retourApis.Add(await CallAPI.CreateOrUpdatePartie(p)); } } if (retourApis.Count > 0 && retourApis.All(r => r.Succes)) { return(RedirectToAction("Tournoi", new { id = match.IdTournament })); } match = await CallAPI.GetMatch(match.IdTournament, match.RoundNumber, match.IdPlayer1); if (match.IdTournament == 0) { return(NotFound()); } match.Parties = Parties; var decksP1 = await CallAPI.GetDeckOfPlayer(match.IdTournament, match.IdPlayer1); ViewData["DecksP1"] = decksP1.Append(new ViewDeck()); var decksP2 = await CallAPI.GetDeckOfPlayer(match.IdTournament, match.IdPlayer2); ViewData["DecksP2"] = decksP2.Append(new ViewDeck()); var empyParties = new List <ViewPartie> { new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie() }; if (match.Parties == null) { match.Parties = empyParties; } match.Parties = match.Parties.Concat(empyParties).Take((match.Tournament.DeckListNumber * 2) - 1).ToList(); ViewData["Title"] = "Match"; return(View("~/Views/Admin/Match.cshtml", match)); }
public async Task <IActionResult> UpdateMatch(int idT, int rn, int idP1) { Match match = await CallAPI.GetMatch(idT, rn, idP1); if (match.IdTournament == 0) { return(NotFound()); } var decksP1 = await CallAPI.GetDeckOfPlayer(match.IdTournament, match.IdPlayer1); ViewData["DecksP1"] = decksP1; var decksP2 = await CallAPI.GetDeckOfPlayer(match.IdTournament, match.IdPlayer2); ViewData["DecksP2"] = decksP2; var empyParties = new List <ViewPartie> { new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie(), new ViewPartie() }; if (match.Parties == null) { match.Parties = empyParties; } match.Parties = match.Parties.OrderBy(p => p.PartNumber).Concat(empyParties).Take((match.Tournament.DeckListNumber * 2) - 1).ToList(); List <ViewPartie> temp = new List <ViewPartie>(); int i = 1; foreach (var p in match.Parties) { if (p.PartNumber == 0) { p.PartNumber = i; i++; } else if (p.PartNumber >= i) { i = p.PartNumber + 1; } temp.Add(p); } match.Parties = temp; ViewData["Title"] = "Match"; return(View("~/Views/Admin/Match.cshtml", match)); }