@startuml ajouterQuestionOld
skinparam style strictuml
skinparam defaultfontname Verdana
title RDCU pour ajouter question
participant ":GestionnaireCours" as gestionnaireCours
participant ": GestionnaireQuestion" as gestionnaireQuestion
participant "universite : Universite" as universite
participant "c:EspaceCours" as cours
participant "q:Question" as question

->gestionnaireCours : cours = recupererTousCours(token)
note left : Selon contôlleur de session,\nreçoit la première opération système
gestionnaireCours->universite: cours = recupererTousCours(token)
note left : Selon expert, universite est l'expert,\ncar il contient toutes les informations\nutiles pour les cours
loop [!terminerQuestion]
->gestionnaireQuestion : ajouterQuestion(numeroGroupe,\ntags,nom,texteQuestion,\nreponse,texteBonneReponse,\ntexteMauvaiseReponse)
 note left : Selon contôlleur de session,\nreçoit la deuxième opération système 
gestionnaireQuestion->universite : ajouterQuestion(numeroGroupe,\ntags,nom,texteQuestion,\nreponse,texteBonneReponse,\ntexteMauvaiseReponse)
universite -> universite: c = recupererUnCours(id)
  note left : Selon expert, universite est l'expert,\ncar il contient toutes les informations\nutiles pour les questions
universite-> cours : ajouterQuestion(numeroGroupe,\ntags,nom,texteQuestion,\nreponse,texteBonneReponse,\ntexteMauvaiseReponse)
  note left : Selon fabrication pure : GestionnaireQuestion\nne represente pas un problème du domaine,\nmais permet de réduire le couplage et d'augmenter la cohésion
  create question
  cours->question : q = create()
  note left : selon Créateur\n(Universite \nutilise groupeCours)
  cours->cours : ajouterQuestion(q)
  note left : Selon expert, espaceCours est l'expert,\ncar il contient toutes les informations\nutiles pour les questions
end
-> gestionnaireQuestion : terminerAjouterQuestion()
note left : Ce n'est pas une opération système, \nmais nous aide à déterminer la fin de la boucle
  -> gestionnaireQuestion : information = recupererToutesQuestions(idCours)
  note left : Selon fabrication pure : GestionnaireQuestion\nne represente pas un problème du domaine,\nmais permet de réduire le couplage et d'augmenter la cohésion
  gestionnaireQuestion ->universite : information = recupererToutesQuestions(idCours)
  note left : Selon expert, universite est l'expert,\ncar il contient toutes les informations\nutiles pour les cours qui contiennent les questions
@enduml

@startuml recupererCoursgestionnaireCoursQuestion
skinparam style strictuml
skinparam defaultfontname Verdana
title RDCU recupererCoursgestionnaireCoursquestion
participant ":EnseignantControleur" as gestionnaireCours
participant "operationCours : OperationCours" as universite
->gestionnaireCours : questions = recupererCoursgestionnaireCoursQuestion(token, idCours, numeroGroupeCours)
note left : Selon Contôleur,\nreçoit la première opération système
gestionnaireCours->universite: questions = recupererCours(token, idCours, numeroGroupeCours)
note left : Selon expert, l'information Sgb est l'expert,\ncar il contient toutes les informations\nutiles pour les cours
@enduml

@startuml ajouterQuestionFinal
skinparam style strictuml
skinparam defaultfontname Verdana
title RDCU pour ajouterQuestion
participant ":EnseignantControleur" as gestionnaireCours
participant "operationCours : OperationCours" as universite
participant "operationQuestion : OperationQuestion" asgestionnaire
participant "q:Question" as question
loop [!terminerQuestion]
-> gestionnaireCours : ajouterQuestion(numeroGroupe,\ntags,nom,texteQuestion,\nreponse,texteBonneReponse,\ntexteMauvaiseReponse)
 note left : Selon Contôleur,\nreçoit la deuxième opération système 
  gestionnaireCours-gestionnaire : ajouterElement(numeroGroupe,\ntags,nom,texteQuestion,\nreponse,texteBonneReponse,\ntexteMauvaiseReponse)
  note left :Selon expert, operationCours contient\ntoutes les informations par rapport aux cours.
  create question
gestionnaire->question : q = create()
  note left : selon Créateur\n(EnseignantControlleur\nutilise groupeCours)
gestionnaire-gestionnaire : ajouterQuestion(q)
  note left : Selon expert, operationQuestion est l'expert,\ncar il contient toutes les informations\nutiles pour les questions
end
-> gestionnaireCours : terminerAjouterQuestion()
note left : Ce n'est pas une opération système, \nmais nous aide à déterminer la fin de la boucle
@enduml

@startuml terminerAjouterQuestion
skinparam style strictuml
skinparam defaultfontname Verdana
title RDCU pour ajouterQuestion
participant ":EnseignantControleur" as gestionnaireCours
participant "operationCours : OperationCours" as universite
 -> gestionnaireCours : information = recupererCoursgestionnaireCours(idGroupeCours)
  note left : EnseignantControlleur est l'objet racine.\nContrôleur ne s'applique pas ici,\ncar il ne s'agit pas d'une opération système
  gestionnaireCours -> universite : information = recupereCours(token)
  note left : Selon expert, operationQuestion est l'expert,\ncar il contient toutes les informations\nutiles pour les questions
@enduml