Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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));
        }