private IEnumerable <PackOption> EnumererPackOption()
 {
     return(PackOption.Enumerer(Connexion, Connexion.Enumerer(@"SELECT * from pack_option
                                                                 JOIN option_vehicule ON pack_option.fk_id_option_vehicule = option_vehicule.id_option_vehicule
                                                                 JOIN type_option ON option_vehicule.fk_id_type_option = type_option.id_type_option
                                                                 JOIN pack_option_pack_vehicule ON pack_option_pack_vehicule.id_pack_option_pack_vehicule = pack_option.fk_id_popv
                                                                 WHERE pack_option.fk_id_popv = {0}", Id)));
 }
 private void NouvelleOptionLiee_AvantChangement(PackOption Entite, PackOption.Champs Champ, object ValeurActuelle, object NouvelleValeur, AccumulateurErreur AccumulateurErreur)
 {
     switch (Champ)
     {
     case PackOption.Champs.OptionVehicule:
     {
         PackOption OptionExistePourCePack = Program.GMBD.EnumererPackOption(null, null, new PDSGBD.MyDB.CodeSql("where fk_id_option_vehicule = {0} AND fk_id_popv = {1}", ficheOptionsPackRecherche.OptionsSelectionnee.Id, listeDeroulantePackOptions1.PackOptionPackVehiculeSelectionne.Id), null).FirstOrDefault();
         if (OptionExistePourCePack != null)
         {
             AccumulateurErreur.NotifierErreur("Cette option est déjà existante dans ce pack");
         }
         break;
     }
     }
 }
        private void NouvelleOptionLie_SurErreur(PackOption Entite, PackOption.Champs Champ, string MessageErreur)
        {
            switch (Champ)
            {
            case PackOption.Champs.OptionVehicule:
                errorProvider.SetError(pictureBoxPackA, MessageErreur);
                break;

            case PackOption.Champs.PackOptionPackVehicule:
                errorProvider.SetError(pictureBoxPackA, MessageErreur);
                break;

            default:
                break;
            }
        }
        private void pictureBoxPackR_Click(object sender, EventArgs e)
        {
            ValidationProvider.Clear();
            errorProvider.Clear();
            // Si un pack a été choisi, alors on retire directement la valeur
            if (ficheOptionsPackActuel.OptionsSelectionnee != null)
            {
                if (listeDeroulantePackOptions1.PackOptionPackVehiculeSelectionne != null)
                {
                    PackOption PackChoisi = Program.GMBD.EnumererPackOption(null, null, new PDSGBD.MyDB.CodeSql("WHERE fk_id_option_vehicule = {0} AND fk_id_popv = {1}", ficheOptionsPackActuel.OptionsSelectionnee.Id, listeDeroulantePackOptions1.PackOptionPackVehiculeSelectionne.Id), null).FirstOrDefault();

                    if ((PackChoisi.EstValide) && (Program.GMBD.SupprimerPackOption(PackChoisi)))
                    {
                        ValidationProvider.SetError(pictureBoxPackR, "Option correctement supprimée");
                        RefreshFichePack(listeDeroulantePackOptions1.PackOptionPackVehiculeSelectionne.Id);
                    }
                }
            }
        }
 private void pictureBoxPackA_Click(object sender, EventArgs e)
 {
     ValidationProvider.Clear();
     errorProvider.Clear();
     if (ficheOptionsPackRecherche.OptionsSelectionnee != null)
     {
         // Si un pack a été choisi, alors on rajoute directement la valeur
         if (listeDeroulantePackOptions1.PackOptionPackVehiculeSelectionne != null)
         {
             bool DoublonsSurOption = false;
             foreach (OptionVehicule OV in ficheOptionsPackActuel.Options)
             {
                 if ((ficheOptionsPackRecherche.OptionsSelectionnee.TypeOption.NomType == OV.TypeOption.NomType) && (ficheOptionsPackRecherche.OptionsSelectionnee.TypeOption.NomType != "Autres"))
                 {
                     DoublonsSurOption = true;
                 }
             }
             if (!DoublonsSurOption)
             {
                 PackOption PackChoisi = new PackOption();
                 PackChoisi.AvantChangement       += NouvelleOptionLiee_AvantChangement;
                 PackChoisi.SurErreur             += NouvelleOptionLie_SurErreur;
                 PackChoisi.OptionVehicule         = ficheOptionsPackRecherche.OptionsSelectionnee;
                 PackChoisi.PackOptionPackVehicule = listeDeroulantePackOptions1.PackOptionPackVehiculeSelectionne;
                 if ((PackChoisi.EstValide) && (Program.GMBD.AjouterPackOption(PackChoisi)))
                 {
                     ValidationProvider.SetError(pictureBoxPackA, "Option correctement ajoutée");
                     RefreshFichePack(listeDeroulantePackOptions1.PackOptionPackVehiculeSelectionne.Id);
                 }
             }
             else
             {
                 errorProvider.SetError(pictureBoxPackA, "Ce type d'option a déjà été choisi");
             }
         }
         // Sinon on crée le pack avec les valeurs de nom et de prix encodés, si elles ne le sont pas, on retourne un message d'erreur
         else
         {
             PackOptionPackVehicule NouveauPack = new PackOptionPackVehicule();
             NouveauPack.SurErreur       += Pack_SurErreur;
             NouveauPack.AvantChangement += AjouterNouveauPack_AvantChangement;
             NouveauPack.NomPack          = textBoxNomPack.Text;
             NouveauPack.PrixPack         = double.Parse(numericUpDownPrixPack.Value.ToString());
             NouveauPack.Disponible       = 1;
             if ((NouveauPack.EstValide) && (Program.GMBD.AjouterPackOptionPackVehicule(NouveauPack)))
             {
                 PackOption NouvelleOptionDeCePack = new PackOption();
                 NouvelleOptionDeCePack.OptionVehicule         = ficheOptionsPackRecherche.OptionsSelectionnee;
                 NouvelleOptionDeCePack.PackOptionPackVehicule = NouveauPack;
                 if ((NouvelleOptionDeCePack.EstValide) && (Program.GMBD.AjouterPackOption(NouvelleOptionDeCePack)))
                 {
                     ValidationProvider.SetError(pictureBoxPackA, "Ce pack et cette option ont bien été ajoutés");
                     RefreshFichePack(NouveauPack.Id);
                 }
                 else
                 {
                     Program.GMBD.SupprimerPackOptionPackVehicule(NouveauPack);
                     errorProvider.SetError(pictureBoxPackA, "L'ajout semble impossible, veuillez revérifier vos valeurs");
                 }
             }
         }
     }
 }