public void QuickAddCompetiteur(Competiteur competiteur)
        {
            Competiteur Comp = Donnee.ListeCompetiteurs.Where(c => c.Nom.ToLower().Equals(competiteur.Nom.ToLower()) && c.Prenom.ToLower().Equals(competiteur.Prenom.ToLower())).FirstOrDefault();

            if (Comp == null)
            {
                Donnee.ListeCompetiteurs.Add(competiteur);
                OnPropertyChanged("ListeCompetiteurs");
            }
            else
            {
                if (MessageBox.Show(string.Format("Un judoka identique existe déjà : {0}-{1} {2} {3}kg {4} {5} Ajouter quand même : {6}-{7} {8} {9}kg {10}",
                                                  Environment.NewLine, Comp.Nom, Comp.Prenom, Comp.Poids, Comp.Categorie,
                                                  Environment.NewLine,
                                                  Environment.NewLine, competiteur.Nom, competiteur.Prenom, competiteur.Poids, competiteur.Categorie), "Doublon", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.No)
                {
                }
                else
                {
                    Donnee.ListeCompetiteurs.Add(competiteur);
                }
            }
            OnPropertyChanged("ListeCompetiteurs");
            OnPropertyChanged("ListeClubs");
        }
Exemplo n.º 2
0
        private void boutonSupprimerCompetiteur_Click(object sender, RoutedEventArgs e)
        {
            string sMessageBoxText = "Supprimer un compétiteur ?";

            MessageBoxButton btnMessageBox = MessageBoxButton.YesNo;
            MessageBoxImage  icnMessageBox = MessageBoxImage.Exclamation;

            MessageBoxResult rsltMessageBox = MessageBox.Show(sMessageBoxText, "", btnMessageBox, icnMessageBox);

            switch (rsltMessageBox)
            {
            case MessageBoxResult.Yes:
                Competiteur c = (Competiteur)grilleCompetiteurs.SelectedItem;

                foreach (var item in donnee.listeAllCompetiteurs)
                {
                    if (item.Equals(c))
                    {
                        donnee.listeAllCompetiteurs.Remove(item);
                        break;
                    }
                }
                affichageSelectif();
                break;

            case MessageBoxResult.No:
                break;
            }

            besoinEnregistrement = true;
        }
        public static Competiteur ToDTO(this CompetiteurModel model)
        {
            Competiteur result = new Competiteur();

            if (model.Id != 0)
            {
                result.Id = model.Id;
            }

            result.CategoriePratiquantId = model.CategorieId;
            result.ClubId        = model.ClubId;
            result.DateNaissance = model.DateNaissance;
            result.NumeroEquipe  = model.NumeroEquipe;
            result.Grade         = (Grade)model.GradeId;
            result.InscriptionValidePourCoupe = model.InscriptionValidePourCoupe;
            result.InscritPourBaiVuKhi        = model.InscritPourBaiVuKhi;
            result.InscritPourCombat          = model.InscritPourCombat;
            result.InscritPourQuyen           = model.InscritPourQuyen;
            result.InscritPourSongLuyen       = model.InscritPourSongLuyen;
            result.InscritPourQuyenDongDien   = model.InscritPourQuyenDongDien;
            result.LicenceFFKDA    = model.LicenceFFKDA;
            result.NbAnneePratique = model.NbAnneePratique;
            result.Nom             = model.Nom;
            result.Poids           = model.Poids;
            result.Prenom          = model.Prenom;
            result.Sexe            = (Genre)model.GenreId;

            return(result);
        }
        public static CompetiteurModel ToModel(this Competiteur dto)
        {
            CompetiteurModel result = new CompetiteurModel();

            result.Id            = dto.Id;
            result.CategorieId   = dto.CategoriePratiquantId;
            result.ClubId        = dto.ClubId;
            result.DateNaissance = dto.DateNaissance;
            result.NumeroEquipe  = dto.NumeroEquipe;
            result.GradeId       = (int)dto.Grade;
            result.InscriptionValidePourCoupe = dto.InscriptionValidePourCoupe;
            result.InscritPourBaiVuKhi        = dto.InscritPourBaiVuKhi;
            result.InscritPourCombat          = dto.InscritPourCombat;
            result.InscritPourQuyen           = dto.InscritPourQuyen;
            result.InscritPourSongLuyen       = dto.InscritPourSongLuyen;
            result.InscritPourQuyenDongDien   = dto.InscritPourQuyenDongDien;
            result.LicenceFFKDA    = dto.LicenceFFKDA;
            result.NbAnneePratique = dto.NbAnneePratique;
            result.Nom             = dto.Nom;
            result.Poids           = dto.Poids;
            result.Prenom          = dto.Prenom;
            result.GenreId         = (int)dto.Sexe;
            result.ValidImport     = dto.ValidImport;
            return(result);
        }
Exemplo n.º 5
0
        //Callback pour ajouter des Competiteurs à partir de la fenetre d'import
        private void addCompetiteurs(Competiteur competiteur)
        {
            Competiteur Comp = donnee.listeAllCompetiteurs.Where(c => c.nom.ToLower().Equals(competiteur.nom.ToLower()) && c.prenom.ToLower().Equals(competiteur.prenom.ToLower())).FirstOrDefault();

            if (Comp == null)
            {
                donnee.listeAllCompetiteurs.Add(competiteur);
                affichageSelectif();
            }
            else
            {
                if (MessageBox.Show(string.Format("Un judoka identique existe déjà : {0}-{1} {2} {3}kg {4} {5} Ajouter quand même : {6}-{7} {8} {9}kg {10}",
                                                  Environment.NewLine, Comp.nom, Comp.prenom, Comp.poids, Comp.categorie,
                                                  Environment.NewLine,
                                                  Environment.NewLine, competiteur.nom, competiteur.prenom, competiteur.poids, competiteur.categorie), "Doublon", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.No)
                {
                }
                else
                {
                    donnee.listeAllCompetiteurs.Add(competiteur);
                    affichageSelectif();
                }
            }
            besoinEnregistrement = true;
        }
 public void SupprimerCompetiteur(Competiteur c)
 {
     Donnee.ListeCompetiteurs.Remove(c);
     OnPropertyChanged("ListeClubs");
     OnPropertyChanged("StatsCompetiteursInscrits");
     OnPropertyChanged("StatsCompetiteursPresents");
     OnPropertyChanged("ListeCompetiteurs");
 }
Exemplo n.º 7
0
        //Trier les compétiteurs présents par poids, catégorie et sexe et leur attribuer un numéro de poule
        private void boutonGenererPoules_Click(object sender, RoutedEventArgs e)
        {
            donnee.listeAllCompetiteurs = new ObservableCollection <Competiteur>(donnee.listeAllCompetiteurs.OrderBy(c => c.categorie).ThenBy(d => d.sexe).ThenBy(f => f.poids).ToList());
            List <Sexes> listeSexesShort = new List <Sexes> {
                Sexes.M, Sexes.F
            };

            int POULE    = 1;
            int COMPTEUR = 1;

            foreach (var item in donnee.listeAllCompetiteurs)
            {
                item.poule = null;
            }
            Competiteur compTemp  = new Competiteur();
            bool        pouleVide = true;

            foreach (var cate in listeCategories)
            {
                foreach (var sex in listeSexesShort)
                {
                    foreach (var c in donnee.listeAllCompetiteurs.Where(c => c.estPresent))
                    {
                        if (c.sexe == sex && c.categorie == (cate))
                        {
                            pouleVide = false;
                            c.poule   = POULE;
                            COMPTEUR++;
                            if (COMPTEUR == donnee.nombreParPoule + 1)
                            {
                                POULE++;
                                COMPTEUR = 1;
                            }
                        }
                    }
                    if (!pouleVide)
                    {
                        POULE++;
                        COMPTEUR  = 1;
                        pouleVide = true;
                    }
                }
                if (!pouleVide)
                {
                    POULE++;
                    COMPTEUR  = 1;
                    pouleVide = true;
                }
            }
            besoinEnregistrement = true;
            affichageSelectif();
        }
Exemplo n.º 8
0
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            Competiteur input = value as CompetitionJudo.Business.Competiteur;

            if (input.poule % 2 != 0)
            {
                return(Brushes.LightGray);
            }
            else
            {
                return(Brushes.White);
            }
        }
Exemplo n.º 9
0
        public async Task <List <Competiteur> > ImporterCSV(string cheminFichier)
        {
            List <Competiteur> ListeResult = new List <Competiteur>();

            string line;

            using (StreamReader reader = new StreamReader(cheminFichier, Encoding.GetEncoding(1252)))
            {
                string headerLine = await reader.ReadLineAsync();

                while (!reader.EndOfStream)
                {
                    line = reader.ReadLine();
                    var values = line.Split(';');

                    if (!String.IsNullOrWhiteSpace(values[0]) && !String.IsNullOrWhiteSpace(values[1]) && !String.IsNullOrWhiteSpace(values[5]))
                    {
                        Competiteur competiteurTemporaire = new Competiteur
                        {
                            Nom    = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(values[0].ToLower()),
                            Prenom = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(values[1].ToLower()),
                            Club   = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(values[4].ToLower()),
                        };

                        Sexes sexOut;
                        if (Enum.TryParse(values[2], out sexOut))
                        {
                            competiteurTemporaire.Sexe = (Sexes)Enum.Parse(typeof(Sexes), values[2]);
                        }

                        double doubleOut;
                        if (double.TryParse(values[3], out doubleOut))
                        {
                            competiteurTemporaire.Poids = Convert.ToDouble(values[3]);
                        }
                        else
                        {
                            competiteurTemporaire.Poids = 0;
                        }

                        Categories categoriesOut;
                        if (Enum.TryParse(values[5], out categoriesOut))
                        {
                            competiteurTemporaire.Categorie = (Categories)Enum.Parse(typeof(Categories), values[5]);
                        }
                        ListeResult.Add(competiteurTemporaire);
                    }
                }
            }
            return(ListeResult);
        }
Exemplo n.º 10
0
        public List <Competiteur> ImporterXLS(string cheminFichier)
        {
            List <Competiteur> ListeResult = new List <Competiteur>();

            using (Stream stream = new FileStream(cheminFichier,
                                                  FileMode.Open,
                                                  FileAccess.Read,
                                                  FileShare.ReadWrite))
            {
                IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
                excelReader.IsFirstRowAsColumnNames = true;

                //Skip First row
                excelReader.Read();
                while (excelReader.Read())
                {
                    Competiteur competiteurTemporaire = new Competiteur
                    {
                        Nom    = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(excelReader.GetString(0).ToLower()),
                        Prenom = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(excelReader.GetString(1).ToLower()),
                        Club   = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(excelReader.GetString(4).ToLower()),
                    };

                    Sexes sexOut;
                    if (Enum.TryParse(excelReader.GetString(2), out sexOut))
                    {
                        competiteurTemporaire.Sexe = (Sexes)Enum.Parse(typeof(Sexes), excelReader.GetString(2));
                    }

                    double doubleOut;
                    if (double.TryParse(excelReader.GetString(3), out doubleOut))
                    {
                        competiteurTemporaire.Poids = Convert.ToDouble(excelReader.GetString(3));
                    }
                    else
                    {
                        competiteurTemporaire.Poids = 0;
                    }

                    Categories categoriesOut;
                    if (Enum.TryParse(excelReader.GetString(5), out categoriesOut))
                    {
                        competiteurTemporaire.Categorie = (Categories)Enum.Parse(typeof(Categories), excelReader.GetString(5));
                    }

                    ListeResult.Add(competiteurTemporaire);
                }
            }
            return(ListeResult);
        }
        private void GenererGroupes()
        {
            Donnee.ListeCompetiteurs = new ObservableCollection <Competiteur>(Donnee.ListeCompetiteurs.OrderBy(c => c.Categorie).ThenBy(d => d.Sexe).ThenBy(f => f.Poids).ToList());

            int poule    = 1;
            int compteur = 1;

            foreach (var competiteur in Donnee.ListeCompetiteurs)
            {
                competiteur.Poule = null;
            }

            Competiteur compTemp  = new Competiteur();
            bool        pouleVide = true;

            foreach (var categorie in ListeCategories)
            {
                foreach (var sexe in ListeSexes)
                {
                    foreach (var competiteur in Donnee.ListeCompetiteurs.Where(c => c.EstPresent))
                    {
                        if (competiteur.Sexe == sexe && competiteur.Categorie == (categorie))
                        {
                            pouleVide         = false;
                            competiteur.Poule = poule;
                            compteur++;
                            if (compteur == Donnee.NombreParPoule + 1)
                            {
                                poule++;
                                compteur = 1;
                            }
                        }
                    }
                    if (!pouleVide)
                    {
                        poule++;
                        compteur  = 1;
                        pouleVide = true;
                    }
                }
                if (!pouleVide)
                {
                    poule++;
                    compteur  = 1;
                    pouleVide = true;
                }
            }

            OnPropertyChanged("ListeCompetiteurs");
        }
        public static ParticipationModel ToPresentielModel(this Competiteur dto, int epreuveId, bool present)
        {
            ParticipationModel result = new ParticipationModel();

            result.ParticipantId         = dto.Id;
            result.CategoriePratiquantId = dto.CategoriePratiquantId;
            result.Nom       = dto.Nom;
            result.Prenom    = dto.Prenom;
            result.Present   = present;
            result.EpreuveId = epreuveId;
            result.ClubId    = dto.ClubId;
            if (dto.Club != null)
            {
                result.Club = dto.Club.Nom;
            }

            return(result);
        }
Exemplo n.º 13
0
        /// <summary>
        /// Converts from XLS.
        /// </summary>
        /// <param name="row">The row.</param>
        /// <returns></returns>
        internal static Competiteur ConvertFromXLS(DataRow row)
        {
            var result = new Competiteur();

            result.ValidImport = true;
            try
            {
                result.Nom          = row.ItemArray[0].ToString();
                result.Prenom       = row.ItemArray[1].ToString();
                result.LicenceFFKDA = row.ItemArray[6].ToString();
            }
            catch (Exception)
            {
                result.ValidImport = false;
            }
            try
            {
                double converted = 0D;
                string column    = row.ItemArray[2].ToString();
                if (double.TryParse(column, out converted))
                {
                    result.DateNaissance = DateTime.FromOADate(double.Parse(column));
                }
                else
                {
                    result.DateNaissance = DateTime.Parse(column);
                }
            }
            catch (Exception)
            {
                result.ValidImport   = false;
                result.DateNaissance = DateTime.Now;
            }
            try
            {
                result.Sexe = ExcelConverterHelper.ConvertToGenre(row.ItemArray[3].ToString());
            }
            catch (Exception)
            {
                result.ValidImport = false;
            }
            try
            {
                result.NbAnneePratique = ExcelConverterHelper.ConvertToInt(row.ItemArray[4].ToString());
                result.NumeroEquipe    = ExcelConverterHelper.ConvertToInt(row.ItemArray[10].ToString());
                result.Poids           = ExcelConverterHelper.ConvertToInt(row.ItemArray[12].ToString());
            }
            catch (Exception)
            {
                result.ValidImport = false;
            }
            try
            {
                result.Grade = ExcelConverterHelper.ConvertToGrade(row.ItemArray[5].ToString());
                if (result.Grade == Grade.NonRenseigne || result.Grade == Grade.NotSet)
                {
                    result.ValidImport = false;
                }
            }
            catch (Exception)
            {
                result.ValidImport = false;
            }
            try
            {
                result.InscritPourQuyen         = ExcelConverterHelper.ConvertToBool(row.ItemArray[7].ToString());
                result.InscritPourBaiVuKhi      = ExcelConverterHelper.ConvertToBool(row.ItemArray[8].ToString());
                result.InscritPourSongLuyen     = false;
                result.InscritPourQuyenDongDien = ExcelConverterHelper.ConvertToBool(row.ItemArray[9].ToString());
                result.InscritPourCombat        = ExcelConverterHelper.ConvertToBool(row.ItemArray[11].ToString());
            }
            catch (Exception)
            {
                result.ValidImport = false;
            }
            try
            {
                //result.CategoriePratiquantId = ExcelConverterHelper.ConvertToCategorie(row.ItemArray[2].ToString());
                result.CategoriePratiquantId = ExcelConverterHelper.ConvertToCategorie(result.DateNaissance);
                if (result.CategoriePratiquantId == 0)
                {
                    result.ValidImport = false;
                }
            }
            catch (Exception)
            {
                result.ValidImport = false;
            }
            return(result);
        }
Exemplo n.º 14
0
        //Import depuis CSV
        private void boutonImporterExcel_Click(object sender, RoutedEventArgs e)
        {
            var listeNouveauxCompetiteur = new List <Competiteur>();

            try
            {
                var dialog = new OpenFileDialog();
                dialog.Filter = "csv files (*.csv)|*.csv";
                if ((bool)dialog.ShowDialog())
                {
                    string cheminFichier = dialog.FileName;
                    string line;
                    using (StreamReader reader = new StreamReader(cheminFichier, Encoding.GetEncoding(1252)))
                    {
                        string headerLine = reader.ReadLine();
                        while (!reader.EndOfStream)
                        {
                            line = reader.ReadLine();
                            var values = line.Split(';');

                            if (!String.IsNullOrWhiteSpace(values[0]) && !String.IsNullOrWhiteSpace(values[1]) && !String.IsNullOrWhiteSpace(values[5]))
                            {
                                Competiteur competiteurTemporaire = new Competiteur
                                {
                                    nom    = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(values[0].ToLower()),
                                    prenom = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(values[1].ToLower()),
                                    club   = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(values[4].ToLower()),
                                };

                                Sexes sexOut;
                                if (Enum.TryParse(values[2], out sexOut))
                                {
                                    competiteurTemporaire.sexe = (Sexes)Enum.Parse(typeof(Sexes), values[2]);
                                }

                                double doubleOut;
                                if (double.TryParse(values[3], out doubleOut))
                                {
                                    competiteurTemporaire.poids = Convert.ToDouble(values[3]);
                                }
                                else
                                {
                                    competiteurTemporaire.poids = 0;
                                }

                                Categories categoriesOut;
                                if (Enum.TryParse(values[5], out categoriesOut))
                                {
                                    competiteurTemporaire.categorie = (Categories)Enum.Parse(typeof(Categories), values[5]);
                                }
                                listeNouveauxCompetiteur.Add(competiteurTemporaire);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erreur Chargement :" + ex, "Erreur", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            Action <Competiteur> addCompetiteursCallback = addCompetiteurs;

            besoinEnregistrement = true;
            if (listeNouveauxCompetiteur.Count > 0)
            {
                FenetreVide fenetre = new FenetreVide(listeNouveauxCompetiteur, addCompetiteursCallback);
                fenetre.Show();
            }
        }
        private void AjouterCompetiteur()
        {
            bool estValide = true;

            var newCompetiteur = new Competiteur()
            {
                Club   = NouveauCompetiteurClub,
                Nom    = NouveauCompetiteurNom,
                Prenom = NouveauCompetiteurPrenom,
            };

            try
            {
                newCompetiteur.Categorie = ListeCategories.FirstOrDefault(c => c.ToString().Equals(NouveauCompetiteurCategorie));
            }
            catch (Exception)
            {
                estValide = false;
                //MessageBox.Show("Catégorie non selectionnée", "Erreur", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            if (!String.IsNullOrWhiteSpace(NouveauCompetiteurPoids))
            {
                try
                {
                    NouveauCompetiteurPoids = NouveauCompetiteurPoids.Replace('.', ',');
                    newCompetiteur.Poids    = Convert.ToDouble(NouveauCompetiteurPoids);
                }
                catch (FormatException)
                {
                    estValide = false;
                    //MessageBox.Show("Poids invalide", "Erreur", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }

            //Infos  de la barre à curseur glissant qui itère entre 0 (masculin) et 1 (féminin)
            switch (NouveauCompetiteurSexe)
            {
            case 0:
                newCompetiteur.Sexe = Sexes.M;
                break;

            case 1:
            {
                estValide = false;
                //MessageBox.Show("Sexe invalide", "Erreur", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            break;

            case 2:
                newCompetiteur.Sexe = Sexes.F;
                break;
            }

            if (NouveauCompetiteurEstPresent)
            {
                newCompetiteur.EstPresent = true;
            }
            else
            {
                newCompetiteur.EstPresent = false;
            }

            if (estValide)
            {
                //grilleCompetiteurs.DataContext = donnee.ListeCompetiteurs;
                Donnee.ListeCompetiteurs.Add(newCompetiteur);
                ResetChampsNouveauCompetiteur();
                OnPropertyChanged("ListeClubs");
                OnPropertyChanged("StatsCompetiteursPresents");
                OnPropertyChanged("StatsCompetiteursInscrits");
                OnPropertyChanged("ListeCompetiteurs");
                //affichageSelectif();
            }
        }
Exemplo n.º 16
0
        /*
         * Les valeur des champs sont ajoutées à un nouveau compétiteur
         * Les champs sont ensuite remis à zero
         */
        private void boutonAjouterCompetiteur_Click(object sender, RoutedEventArgs e)
        {
            bool estValide = true;

            var newCompetiteur = new Competiteur()
            {
                club   = listeClub.Text,
                nom    = texteNom.Text,
                prenom = textePrenom.Text,
            };

            try
            {
                newCompetiteur.categorie = (Categories)listeCategorie.SelectedValue;
            }
            catch (Exception)
            {
                estValide = false;
                MessageBox.Show("Catégorie non selectionnée", "Erreur", MessageBoxButton.OK, MessageBoxImage.Error);
            }

            if (!String.IsNullOrWhiteSpace(textePoids.Text))
            {
                try
                {
                    textePoids.Text      = textePoids.Text.Replace('.', ',');
                    newCompetiteur.poids = Convert.ToDouble(textePoids.Text);
                }
                catch (FormatException)
                {
                    estValide = false;
                    MessageBox.Show("Poids invalide", "Erreur", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }



            //Infos  de la barre à curseur glissant qui itère entre 0 (masculin) et 1 (féminin)
            switch (Convert.ToInt16(barreSexe.Value))
            {
            case 0:
                newCompetiteur.sexe = Sexes.M;
                break;

            case 1:
            {
                estValide = false;
                MessageBox.Show("Sexe invalide", "Erreur", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            break;

            case 2:
                newCompetiteur.sexe = Sexes.F;
                break;
            }



            if ((bool)checkPresent.IsChecked)
            {
                newCompetiteur.estPresent = true;
            }
            else
            {
                newCompetiteur.estPresent = false;
            }

            if (estValide)
            {
                //ajoutNouveauClub();
                resetChamps();
                //grilleCompetiteurs.DataContext = donnee.listeAllCompetiteurs;
                donnee.listeAllCompetiteurs.Add(newCompetiteur);
                affichageSelectif();
                besoinEnregistrement = true;
            }
            RefreshListeClub();
        }
        public JsonResult VentilationEpreuve(string id)
        {
            int parsed;

            if (int.TryParse(id, out parsed) && parsed > 0)
            {
                var epreuves       = this.unitOfWork.Repository <Epreuve>();
                var participants   = this.unitOfWork.Repository <Participant>();
                var participations = this.unitOfWork.Repository <Participation>();
                var typesEpreuves  = this.unitOfWork.Repository <TypeEpreuve>().Read();

                var epreuve = epreuves.Read().FirstOrDefault(e => e.Id == parsed);

                if (epreuve != null)
                {
                    bool competiteurBoundToEpreuve = false;

                    foreach (var participation in participations.Read().Where(p => p.EpreuveId == parsed))
                    {
                        participations.Delete(participation);
                    }

                    if (epreuve.TypeEpreuve.Technique)
                    {
                        foreach (var participant in participants.Read().OfType <Competiteur>())
                        {
                            Competiteur competiteur = (Competiteur)participant;
                            if (epreuve.CategoriePratiquantId == competiteur.CategoriePratiquantId && (epreuve.GenreCategorie == GenreEpreuve.Mixte || ((int)epreuve.GenreCategorie == (int)competiteur.Sexe)))
                            {
                                if (competiteur.InscritPourQuyen && epreuve.TypeEpreuve.Identifier == TypeEpreuveConstants.BAIQUYEN)
                                {
                                    if (epreuve.GradeAutorise == Grade.TousGrades)
                                    {
                                        competiteurBoundToEpreuve = true;
                                        participations.Create(new Participation
                                        {
                                            ParticipantId = competiteur.Id,
                                            EpreuveId     = epreuve.Id,
                                            Resultat      = new Resultat()
                                            {
                                                Date = DateTime.Now
                                            }
                                        });
                                    }
                                    else if (epreuve.GradeAutorise == Grade.MoinsDeCeintureNoire && (competiteur.Grade == Grade.CeintureBlancheA4emeCap || competiteur.Grade == Grade.Plus4emeCapACeintureMarron))
                                    {
                                        competiteurBoundToEpreuve = true;
                                        participations.Create(new Participation
                                        {
                                            ParticipantId = competiteur.Id,
                                            EpreuveId     = epreuve.Id,
                                            Resultat      = new Resultat()
                                            {
                                                Date = DateTime.Now
                                            }
                                        });
                                    }
                                    else if (epreuve.GradeAutorise == competiteur.Grade)
                                    {
                                        competiteurBoundToEpreuve = true;
                                        participations.Create(new Participation
                                        {
                                            ParticipantId = competiteur.Id,
                                            EpreuveId     = epreuve.Id,
                                            Resultat      = new Resultat()
                                            {
                                                Date = DateTime.Now
                                            }
                                        });
                                    }
                                }


                                if (competiteur.InscritPourBaiVuKhi && epreuve.TypeEpreuve.Identifier == TypeEpreuveConstants.BAIVUKHI)
                                {
                                    if (epreuve.GradeAutorise == Grade.TousGrades)
                                    {
                                        competiteurBoundToEpreuve = true;
                                        participations.Create(new Participation
                                        {
                                            ParticipantId = competiteur.Id,
                                            EpreuveId     = epreuve.Id,
                                            Resultat      = new Resultat()
                                            {
                                                Date = DateTime.Now
                                            }
                                        });
                                    }
                                    else if (epreuve.GradeAutorise == Grade.MoinsDeCeintureNoire && (competiteur.Grade == Grade.CeintureBlancheA4emeCap || competiteur.Grade == Grade.Plus4emeCapACeintureMarron))
                                    {
                                        competiteurBoundToEpreuve = true;
                                        participations.Create(new Participation
                                        {
                                            ParticipantId = competiteur.Id,
                                            EpreuveId     = epreuve.Id,
                                            Resultat      = new Resultat()
                                            {
                                                Date = DateTime.Now
                                            }
                                        });
                                    }
                                    else if (epreuve.GradeAutorise == competiteur.Grade)
                                    {
                                        competiteurBoundToEpreuve = true;
                                        participations.Create(new Participation
                                        {
                                            ParticipantId = competiteur.Id,
                                            EpreuveId     = epreuve.Id,
                                            Resultat      = new Resultat()
                                            {
                                                Date = DateTime.Now
                                            }
                                        });
                                    }
                                }
                            }
                        }

                        if (epreuve.TypeEpreuve.Identifier == TypeEpreuveConstants.QUYENDONGDIEN)
                        {
                            foreach (var equipe in participants.Read().OfType <Equipe>())
                            {
                                var membres      = equipe.Competiteurs;
                                var hasBlackBelt = membres.Select(m => m.Grade).Contains(Grade.CeintureNoire);

                                if (membres.First().InscritPourQuyenDongDien&& hasBlackBelt && epreuve.GradeAutorise == Grade.CeintureNoire)
                                {
                                    competiteurBoundToEpreuve = true;
                                    participations.Create(new Participation
                                    {
                                        ParticipantId = equipe.Id,
                                        EpreuveId     = parsed,
                                        Resultat      = new Resultat()
                                        {
                                            Date = DateTime.Now
                                        }
                                    });
                                }
                                else if (membres.First().InscritPourQuyenDongDien&& !hasBlackBelt && epreuve.GradeAutorise == Grade.MoinsDeCeintureNoire)
                                {
                                    competiteurBoundToEpreuve = true;
                                    participations.Create(new Participation
                                    {
                                        ParticipantId = equipe.Id,
                                        EpreuveId     = parsed,
                                        Resultat      = new Resultat()
                                        {
                                            Date = DateTime.Now
                                        }
                                    });
                                }
                            }
                        }
                    }
                    else
                    {
                        foreach (var competiteur in participants.Read().Cast <Competiteur>().Where(c => c.InscritPourCombat))
                        {
                            if (epreuve.CategoriePratiquantId == competiteur.CategoriePratiquantId && (epreuve.GenreCategorie == GenreEpreuve.Mixte || ((int)epreuve.GenreCategorie == (int)competiteur.Sexe)) && (competiteur.Poids >= ((EpreuveCombat)epreuve).PoidsMini && competiteur.Poids < ((EpreuveCombat)epreuve).PoidsMaxi))
                            {
                                if (epreuve.GradeAutorise == Grade.TousGrades)
                                {
                                    competiteurBoundToEpreuve = true;
                                    participations.Create(new Participation
                                    {
                                        ParticipantId = competiteur.Id,
                                        EpreuveId     = epreuve.Id,
                                        Resultat      = new Resultat()
                                        {
                                            Date = DateTime.Now
                                        }
                                    });
                                }
                                else if (epreuve.GradeAutorise == Grade.MoinsDeCeintureNoire && (competiteur.Grade == Grade.CeintureBlancheA4emeCap || competiteur.Grade == Grade.Plus4emeCapACeintureMarron))
                                {
                                    competiteurBoundToEpreuve = true;
                                    participations.Create(new Participation
                                    {
                                        ParticipantId = competiteur.Id,
                                        EpreuveId     = epreuve.Id,
                                        Resultat      = new Resultat()
                                        {
                                            Date = DateTime.Now
                                        }
                                    });
                                }
                                else if (epreuve.GradeAutorise == competiteur.Grade)
                                {
                                    competiteurBoundToEpreuve = true;
                                    participations.Create(new Participation
                                    {
                                        ParticipantId = competiteur.Id,
                                        EpreuveId     = epreuve.Id,
                                        Resultat      = new Resultat()
                                        {
                                            Date = DateTime.Now
                                        }
                                    });
                                }
                            }
                        }
                    }

                    if (competiteurBoundToEpreuve)
                    {
                        epreuve.Statut = StatutEpreuve.Ouverte;
                        epreuves.Update(epreuve);
                    }
                    else
                    {
                        epreuve.Statut = StatutEpreuve.Fermee;
                        epreuves.Update(epreuve);
                    }
                    var result = new JsonResult();
                    result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
                    result.Data = new { success = true };
                    return(result);
                }
            }

            throw new ArgumentException("id can't be parsed");
        }
 //Callback pour ajouter des Competiteurs à partir de la fenetre d'import
 private void addCompetiteurs(Competiteur competiteur)
 {
     VM.QuickAddCompetiteur(competiteur);
 }