// méthode qui génére la liste de tous les ateliers. public List <Atelier> tousLesAteliers() { // on veut recuperai la liste de tous les participants et les rangers dans leurs Class : // Soit Participant || Soit Benevoles List <Atelier> laListe = new List <Atelier>(); /**//* * * String req = "select * from participants Pt " + * "left join participer Pr on Pr.id = Pt.id " + * "left join atelier Ar on Ar.id = Pr.id " + * "left join intervenir Ir on Pt.id = Ir.id " + * "left join intervention I on Ir.email = I.email " + * "left join participants on Pt.id = Ar.id_participants " + * "order by Pt.id;"; */ String req = "select * from atelier Ar " + "left join participants Pt on Pt.id = Ar.id_participants " + "left join participer Pr on Ar.id = Pr.id_atelier " + "left join participants Ps on Pr.id = Ps.id " + "left join intervenir Ir on Pt.id = Ir.id " + "left join intervention I on Ir.email = I.email " + "order by Ar.id;"; DAOFactory db = new DAOFactory(); db.connecter(); SqlDataReader reader = db.excecSQLRead(req); int next = -1; // va servir a savoir si on change d'inscript while (reader.Read()) // pour chaque ligne on associe 1 inscript a un atelier et son intervenant { // permets d'avoir les informations sur l'atelier int idAtelier = 0; String nomA = " null "; int capa = 0; if (reader[0].ToString().Length > 0 && reader[1].ToString().Length > 0 && reader[2].ToString().Length > 0) { idAtelier = int.Parse(reader[0].ToString()); nomA = reader[1].ToString(); capa = int.Parse(reader[2].ToString()); } // sert pour avoir les informations sur l'intervenant de l'atelier int idI = 0; String nomI = " null "; String prenomI = " null "; String adresseI = " null "; String portableI = " null "; String typeI = " null "; int nbParticipationI = 0; if (reader[4].ToString().Length > 0 && reader[5].ToString().Length > 0 && reader[6].ToString().Length > 0 && reader[7].ToString().Length > 0 && reader[8].ToString().Length > 0 && reader[9].ToString().Length > 0 && reader[10].ToString().Length > 0) { idI = int.Parse(reader[4].ToString()); nomI = reader[5].ToString(); prenomI = reader[6].ToString(); adresseI = reader[7].ToString(); portableI = reader[8].ToString(); typeI = reader[9].ToString(); nbParticipationI = int.Parse(reader[10].ToString()); } // Permets d'avoir les informations de l'inscript int idP = 0; String nomP = ""; String prenomP = ""; String adresseP = ""; String portableP = ""; String typeP = ""; // int nbParticipation = 0; if (reader[12].ToString().Length > 0 && reader[13].ToString().Length > 0 && reader[14].ToString().Length > 0 && reader[15].ToString().Length > 0 && reader[16].ToString().Length > 0 && reader[17].ToString().Length > 0 && reader[18].ToString().Length > 0) { idP = int.Parse(reader[13].ToString()); nomP = reader[14].ToString(); prenomP = reader[15].ToString(); adresseP = reader[16].ToString(); portableP = reader[17].ToString(); typeP = reader[18].ToString(); // nbParticipation = int.Parse(reader[18].ToString()); } // sert si l'inscript est un Benevole String emailB; if (reader[20].ToString().Length > 0) { emailB = reader[20].ToString(); } else { emailB = "impossible"; } // on sait qu'il s'agit d'un intervenant, donc on peu l'initialiser ici Participant intervenant = new Participant(idI, nomI, prenomI, adresseI, portableI, typeI); // on initialise egalement l'atelier Atelier Ar = new Atelier(idAtelier, nomA, capa, intervenant); // on verifie qu'on a bien toute les donnee pour cree le Participant if (idP.ToString().Length > 0 && nomP.ToString().Length > 0 && prenomP.ToString().Length > 0 && adresseP.ToString().Length > 0 && portableP.ToString().Length > 0 && typeP.ToString().Length > 0) { // on verifie s'il ne s'agit pas d'un Benevole if (emailB == "impossible") { Participant pt = new Participant(idP, nomP, prenomP, adresseP, portableP, typeP); Ar.ajouterParticipant(pt); } else // sinon il s'agit d'un Benevole { Benevoles bs = new Benevoles(idP, nomP, prenomP, adresseP, portableP, typeP, emailB); Ar.ajouterParticipant(bs); } } if (next != Ar.Id) { next = Ar.Id; laListe.Add(Ar); } else { int indexA = 0; while (indexA < laListe.Count) { Atelier unA = laListe.ElementAt(indexA); if (unA.Id == Ar.Id) { Boolean cancel = false; int indexP = 0; while (indexP < unA.Participants.Count) { // verifie si les id sont identique, // si oui le participant est deja dans la liste de l'atelier if (unA.Participants.ElementAt(indexP).Id.Equals(Ar.Participants.ElementAt(0).Id)) { cancel = true; } indexP++; } // ne reste faux que si le participants n'est pas deja inscript a l'atelier if (cancel == false) { unA.ajouterParticipant(Ar.Participants.ElementAt(0)); } } indexA++; } } } /**/ return(laListe); } // fin tousLesAteliers()