/// <summary> /// Assigne l'utilisateur courant à l'atelier représenté par l'ID du bouton cliqué. /// La souscription est réflétée dans la BD. /// </summary> /// <param name="sender">Bouton cliqué. Son ID correspond au numéro de l'atelier choisi dans la BD.</param> public static void Subscribe(object sender, EventArgs e) { HtmlInputButton button = (HtmlInputButton)sender; //Recherche d'un numéro étudiant à partir de l'utilisateur authentifié. string user = HttpContext.Current.User.Identity.Name; string numEtudiant = context.Etudiant.SingleOrDefault(etudiant => etudiant.username == user) .username; //Ce if sert principalement à la détection d'erreurs. Le ID du bouton est assigné //programmatiquement, alors il devrait toujours parser. Si le programme assigne le ID faussement et celui-ci ne parse pas, //nous saurons immédiatement d'où vient l'erreur. if (int.TryParse(button.ID, out int numAtelier)) { Etudiant_Atelier newEntry = new Etudiant_Atelier() { Numero_Etudiant = numEtudiant, NumAtelier = numAtelier }; context.Etudiant_Atelier.InsertOnSubmit(newEntry); context.SubmitChanges(); } else { throw new System.ArgumentException($"int.Parse() Could not parse {button.ID} on {button.ToString()}.") { Source = button.ID }; } }
/// <summary> /// Prend en charge la désinscription d'un atelier. L'identité de l'étudiant provient du contexte HTTP, /// et l'identité de l'atelier provient de l'ID du bouton cliqué. /// </summary> /// <param name="sender">Bouton cliqué. Son ID correspond au numéro de l'atelier choisi dans la BD.</param> /// <param name="e"></param> public static void Unsubscribe(object sender, EventArgs e) { HtmlInputButton button = (HtmlInputButton)sender; string user = HttpContext.Current.User.Identity.Name; if (int.TryParse(button.ID, out int numAtelier)) { Etudiant_Atelier toDelete = context.Etudiant_Atelier.SingleOrDefault(ea => ea.Numero_Etudiant == user && ea.NumAtelier == numAtelier); context.Etudiant_Atelier.DeleteOnSubmit(toDelete); context.SubmitChanges(); button.Value = "Succès"; } }