Add Second Sequence Diagram about NextTitle
continuous-integration/drone/push Build is passing Details

pull/30/head
Louis LABORIE 2 years ago
parent 90987188e8
commit 58f8dc9ade

@ -659,6 +659,43 @@ Notre sérialisation permet de sauvegarder nos données dans des fichiers *XML*
Cette méthode est appelée lorsque l'utilisateur démarre l'application *Linaris* (MAUI). Celle-ci appelle ensuite les différentes fonctions de chargement codées en *C#* présentes dans la classe *LinqXmlSerialization*. Grâce à la bibliothèque **LINQ_XML**, la sérialisation peut récupérer les données présentes dans les différents fichiers pour les classes **Artist**, **CustomTitle** et **Playlist** et les mettre dans les différentes *ObservableCollection*. Pour les classes **InfoTitle** et **Album**, les données sont récupérées dans les collections des stubs correspondant et les mettre dans les différentes *ObservableCollection*. Les données sont ensuite utilisables par les vues via le **manager**.
### NextTitle()
```plantuml
@startuml
autonumber
actor Utilisateur as user
participant Front as vues
participant Manager as man
participant Playlist as play
group NextTitle
user -> vues : Clique sur le bouton suivant
vues -> man : Appelle la fonction NextTitle
alt currentPlaylist == null
vues <-- man : ne retourne rien
else currentPlaylist != null
man -> play : Demande le titre suivant
alt loop == true
man <-- play : retourne le titre actuel
else loop == false and shuffle == true
man <-- play : retourne un titre aléatoire de la playlist (index entre 0 et la taille de la playlist)
else loop == false and shuffle == false
man <-- play : retourne le titre suivant (index + 1)
end
vues <-- man : retourne le titre
user <-- vues : joue le titre
end
end
@enduml
```
#### Explications
Lorsque l'utilisateur clique sur le bouton **suivant**, la fonction **NextTitle** de la classe C# *Manager* est appelée. Si la variable *currentPlaylist* est initialisée,
la fonction **NextTitle** de la classe *Playlist* est appelée. Si le booléen *loop* est vrai, la fonction retourne le titre actuel. Si le booléen *loop* est faux et le booléen *shuffle* est vrai,
la fonction retourne un titre aléatoire en générant un nombre aléatoire compris entre 0 et la taille de la playlist (nombre de titres) grâce à la fonction **RandomGenerator** de la playlist.
À l'inverse, si le booléen *shuffle* est faux, la fonction retourne le titre suivant en incrémentant de 1 l'index du son actuel.
---

Loading…
Cancel
Save