protected void gridView_OnRowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "responsable") { ResponsablesBLL respoBLL = new ResponsablesBLL(); Evenement evt = new Evenement(); evt.id_evenement = int.Parse(ViewState["evenementId"].ToString()); Personne responsable = new Personne(); responsable.id_personne = int.Parse(Session["personneID"].ToString()); //On récupère l'id de la personne sélectionnée int indexClique = Convert.ToInt32(e.CommandArgument); String idDeLaLigneCliquee = gridview_personnesSansResponsables.DataKeys[indexClique].Value.ToString(); Personne responsableDe = new Personne(); responsableDe.id_personne = int.Parse(idDeLaLigneCliquee); ResponsablesDAL respo = new ResponsablesDAL(); bool success = respoBLL.devenirResponsable(responsable, responsableDe, evt); if (success) { ViewState["listePersonnesChargee"] = "false"; ChargerPersonnesSansRespo(); } else { FailureText.Text = "Echec de la prise de responsabilité"; } } }
private void ChargerPersonnesSansRespo() { ResponsablesBLL respoBLL = new ResponsablesBLL(); Personne personneConnectee = new Personne(); personneConnectee.id_personne = int.Parse(Session["personneID"].ToString()); Evenement evt = new Evenement(); evt.id_evenement = int.Parse(ViewState["evenementId"].ToString()); gridview_personnesSansResponsables.DataSource = respoBLL.getListePersonnesSansResponsables(personneConnectee, evt); gridview_personnesSansResponsables.DataBind(); chargerPersonnesDontOnEstResponsable(); }
private void chargerPersonnesDontOnEstResponsable() { if ((ViewState["listePersonnesChargee"] == null || ViewState["listePersonnesChargee"].ToString() != "true") && ViewState["evenementId"] != null) { ResponsablesBLL respoBLL = new ResponsablesBLL(); Personne personneConnectee = new Personne(); personneConnectee.id_personne = int.Parse(Session["personneID"].ToString()); Evenement evt = new Evenement(); evt.id_evenement = int.Parse(ViewState["evenementId"].ToString()); List <Personne> listePersonnesRetour = respoBLL.getListeInfosResponsabilite(personneConnectee, evt); DataTable retour = new DataTable(); retour.Columns.Add("ID"); retour.Columns.Add("nom"); DataRow dr2 = retour.NewRow(); dr2["ID"] = "0"; dr2["nom"] = "--"; retour.Rows.Add(dr2); //List<String> truc = new List<String>(); foreach (Personne pers in listePersonnesRetour) { DataRow dr = retour.NewRow(); dr["ID"] = pers.id_personne; dr["nom"] = pers.prenom + " " + pers.nom.ToUpper(); retour.Rows.Add(dr); } listePersonnes.DataValueField = "ID"; listePersonnes.DataTextField = "nom"; listePersonnes.DataSource = retour; listePersonnes.DataBind(); ViewState["listePersonnesChargee"] = "true"; } }
protected void chargerResponsable() { ResponsablesBLL respBLL = new ResponsablesBLL(); Evenement evt = new Evenement(); evt.id_evenement = int.Parse(ViewState["evenementId"].ToString()); Personne personneSelectionnee = new Personne(); personneSelectionnee.id_personne = int.Parse(listeParticipantAyantListe.SelectedItem.Value); Personne responsable = respBLL.getInfosResponsableDe(personneSelectionnee, evt); if (responsable != null) { lbl_responsable.Text = "Le responsable du cadeau est : " + responsable.prenom + " " + responsable.nom.ToUpper(); } else { lbl_responsable.Text = listeParticipantAyantListe.SelectedItem.Text + " n'a pas encore de responsable."; } }
/// <summary> /// Charge l'ensemble des participations dans la datagrid /// </summary> /// <param name="p"></param> public void chargerTableauParticipations(string evenementId) { List <ListeIdeesCadeaux> listeIdeesCadeaux = null; List <Participation> listeParticipation = null; try { //Récupérer l'ensemble des listes actives pour cet évènement Evenement evt = new Evenement(); evt.id_evenement = int.Parse(evenementId); ListeIdeesCadeauxBLL listeBLL = new ListeIdeesCadeauxBLL(); listeIdeesCadeaux = listeBLL.getAllListeIdeesCadeaux(evt); //Récupérer l'ensemble des participations de la personne connectée pour cet évènement Participation parti = new Participation(); parti.id_personne = int.Parse(Session["personneID"].ToString()); ParticipationsBLL partService = new ParticipationsBLL(); listeParticipation = partService.getAllParticipations(parti, evt); //Merger les deux infos dans une DataTable pour s'en servir de DataSource DataTable dtMerge = new DataTable(); dtMerge = preparerTable(dtMerge); //Représente la liste des responsables avec l'argent que la personne connectée doit Dictionary <int, long> mapDette = new Dictionary <int, long>(); //Représente la liste des sous que doivent les personnes pour les listes où l'utilisateur connecté est responsable Dictionary <int, long> mapCredit = new Dictionary <int, long>(); //Représente la liste des noms par id, pour éviter de refaire une requête Dictionary <int, string> mapNoms = new Dictionary <int, string>(); HashSet <int> setCle = new HashSet <int>(); //On parcourt les listes actives foreach (ListeIdeesCadeaux liste in listeIdeesCadeaux) { ResponsablesBLL respoService = new ResponsablesBLL(); //On cherche le responsable de la liste Personne responsable = respoService.getInfosResponsableDe(liste.listeIdeesCadeauxPour, liste.listePourEvenement); if (responsable != null) { //Si on est responsable de cette liste, on va ajouter les participations des autres if (responsable.id_personne == int.Parse(Session["personneID"].ToString())) { List <Participation> listeParticipationAListe = new List <Participation>(); listeParticipationAListe = partService.getListeParticipation(liste); foreach (Participation particAListe in listeParticipationAListe) { //S'il ne s'agit pas de notre propre participation if (particAListe.id_personne != responsable.id_personne) { //Si la personne devant de l'argent n'existait pas encore, on la créé avec la participation if (!mapCredit.ContainsKey(particAListe.id_personne)) { mapCredit.Add(particAListe.id_personne, particAListe.participation); setCle.Add(particAListe.id_personne); if (!mapNoms.ContainsKey(particAListe.id_personne)) { mapNoms.Add(particAListe.id_personne, particAListe.personne.prenom + " " + particAListe.personne.nom.ToUpper()); } } //si on devait de l'argent au responsable, on ajoute la nouvelle participation else { mapCredit[particAListe.id_personne] = mapCredit[particAListe.id_personne] + particAListe.participation; } } } } //Si on n'est pas responsable, on ajoute ce qu'on doit au responsable else { foreach (Participation part in listeParticipation) { if (part.id_liste == liste.id_listeIdeesCadeaux) { //Si le responsable n'existait pas encore, on le créé avec la participation if (!mapDette.ContainsKey(responsable.id_personne)) { mapDette.Add(responsable.id_personne, part.participation); setCle.Add(responsable.id_personne); if (!mapNoms.ContainsKey(responsable.id_personne)) { mapNoms.Add(responsable.id_personne, responsable.prenom + " " + responsable.nom.ToUpper()); } } //si on devait de l'argent au responsable, on ajoute la nouvelle participation else { mapDette[responsable.id_personne] = mapDette[responsable.id_personne] + part.participation; } } } } } } foreach (int key in setCle) { DataRow row = dtMerge.NewRow(); row["id"] = key; row["personne"] = mapNoms[key]; row["jedois"] = mapDette.ContainsKey(key) ? mapDette[key] : 0; row["onmedoit"] = mapCredit.ContainsKey(key) ? mapCredit[key] : 0; dtMerge.Rows.Add(row); } //ATTENTION : Penser qu'on doit l'argent au responsable de la liste, et pas à celui pour qui est la liste ! gridView_listeDettes.DataSource = dtMerge; gridView_listeDettes.DataBind(); } catch (Exception e) { FailureText.Text = "Erreur dans la récupération du tableau"; SuccessText.Text = ""; } }