/// <summary>
        /// Adapte un Match Model en Match Contract.
        /// </summary>
        /// <param name="matchC">Match à adapter.</param>
        /// <returns>Match Model.</returns>
        public static MatchModel fromMatchContract(MatchContract matchC)
        {
            if (matchC == null)
                return null;

            MatchModel m = new MatchModel();
            m.ID = matchC.ID;
            m.IdVainqueur = matchC.IdVainqueur;
            m.Jedi1 = JediAdapter.fromJediContract(matchC.Jedi1);
            m.Jedi2 = JediAdapter.fromJediContract(matchC.Jedi2);
            m.PhaseTournoi = MatchAdapter.fromPhaseTournoiContract(matchC.PhaseTournoi);
            m.Stade = StadeAdapter.fromStadeContract(matchC.Stade);

            return m;
        }
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                // Récupère les valeurs du formulaire soumis
                int idJedi1 = -1;
                int.TryParse(collection["SelectedJedi1"], out idJedi1);
                int idJedi2 = -1;
                int.TryParse(collection["SelectedJedi2"], out idJedi2);
                int idStade = -1;
                int.TryParse(collection["SelectedStade"], out idStade);

                // Saisie invalide
                if (idJedi1 == -1 || idJedi2 == -1 || idStade == -1)
                    return View();

                // Récupères les objets nécessaires via la web service
                JediModel jediM1 = JediAdapter.fromJediContract(m_webService.GetJediById(idJedi1));
                JediModel jediM2 = JediAdapter.fromJediContract(m_webService.GetJediById(idJedi2));
                StadeModel stadeM = StadeAdapter.fromStadeContract(m_webService.GetStadeById(idStade));

                // Nouveau Match
                MatchModel newMatch = new MatchModel();
                newMatch.ID = -1;   // En cours de création
                newMatch.Jedi1 = jediM1;
                newMatch.Jedi2 = jediM2;
                newMatch.Stade = stadeM;
                newMatch.IdVainqueur = -1;  // Non joué
                newMatch.PhaseTournoi = EPhaseTournoiModel.QuartFinale; // Match à la base d'un tournoi

                // Appelle le Web Service pour l'enregistrement
                m_webService.CreateMatch(MatchAdapter.fromMatchModel(newMatch));

                return new RedirectResult(Url.Action("Index") + "#content");
            }
            catch
            {
                return View();
            }
        }
        /// <summary>
        /// Adapte un Match Model en Match Contract.
        /// </summary>
        /// <param name="match">Match à adapter.</param>
        /// <returns>Match contract.</returns>
        public static MatchContract fromMatchModel(MatchModel match)
        {
            if (match == null)
                return null;

            // Prépare les valeurs
            JediContract jc1 = JediAdapter.fromJediModel(match.Jedi1);
            JediContract jc2 = JediAdapter.fromJediModel(match.Jedi2);
            EPhaseTournoiContract pc = MatchAdapter.fromPhaseTournoiModel(match.PhaseTournoi);
            StadeContract sc = StadeAdapter.fromStadeModel(match.Stade);

            // Crée le MatchContract
            MatchContract mc = new MatchContract();
            mc.ID = match.ID;
            mc.IdVainqueur = match.IdVainqueur;
            mc.Jedi1 = jc1;
            mc.Jedi2 = jc2;
            mc.PhaseTournoi = pc;
            mc.Stade = sc;

            return mc;
        }