|
|
|
@ -145,7 +145,6 @@ class Album {
|
|
|
|
|
+ string Description
|
|
|
|
|
+ string ImageURL
|
|
|
|
|
+ string Information
|
|
|
|
|
+ Artist Artist
|
|
|
|
|
+ ObservableCollection<InfoTitle> InfoTitles
|
|
|
|
|
+ Album(string name, string imageURL, Artist artist, string description, string information)
|
|
|
|
|
+ Album()
|
|
|
|
@ -157,6 +156,7 @@ class Album {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class Playlist {
|
|
|
|
|
+ event PropertyChangedEventHandler PropertyChanged
|
|
|
|
|
+ string Name
|
|
|
|
|
+ string Description
|
|
|
|
|
+ ObservableCollection<CustomTitle> Titles
|
|
|
|
@ -178,9 +178,11 @@ class Playlist {
|
|
|
|
|
+ string ToString()
|
|
|
|
|
- {static} int RandomGenerator(int n)
|
|
|
|
|
+ bool HasCustomTitle(CustomTitle customTitle)
|
|
|
|
|
# void OnPropertyChanged([CallerMemberName] string propertyName = null)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class Title {
|
|
|
|
|
+ event PropertyChangedEventHandler PropertyChanged
|
|
|
|
|
+ string Name
|
|
|
|
|
+ string ImageURL
|
|
|
|
|
+ string Information
|
|
|
|
@ -188,6 +190,7 @@ class Title {
|
|
|
|
|
+ boolean Equals(object obj)
|
|
|
|
|
+ int GetHashCode()
|
|
|
|
|
+ string ToString()
|
|
|
|
|
# void OnPropertyChanged([CallerMemberName] string propertyName = null)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
enum Genre
|
|
|
|
@ -227,9 +230,8 @@ class CustomTitle {
|
|
|
|
|
class InfoTitle {
|
|
|
|
|
+ string Description
|
|
|
|
|
+ IEnumerable<Artist> Feat
|
|
|
|
|
+ Genre Genre
|
|
|
|
|
+ long AlbumID
|
|
|
|
|
+ InfoTitle(string name, string imageURL, string information, Artist artist, string description, Genre genre, long albumID)
|
|
|
|
|
+ InfoTitle(string name, string imageURL, string information, string description, Genre genre, long albumID)
|
|
|
|
|
+ InfoTitle()
|
|
|
|
|
+ void AddFeat(Artist artist)
|
|
|
|
|
+ void RemoveFeat(Artist artiste)
|
|
|
|
@ -240,17 +242,17 @@ class InfoTitle {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class Manager {
|
|
|
|
|
+ event PropertyChangedEventHandler PropertyChanged
|
|
|
|
|
+ {static} readonly int MAX_NAME_LENGTH = 75
|
|
|
|
|
+ {static} readonly int MAX_DESCRIPTION_LENGTH = 500
|
|
|
|
|
+ {static} readonly string DEFAULT_NAME = "Unknown"
|
|
|
|
|
+ {static} readonly string DEFAULT_URL = "none.png"
|
|
|
|
|
+ {static} readonly string DEFAULT_DESC = ""
|
|
|
|
|
+ IDataManager DataManager
|
|
|
|
|
- ObservableCollection<Album> Albums
|
|
|
|
|
- ObservableCollection<CustomTitle> CustomTitles
|
|
|
|
|
- ObservableCollection<InfoTitle> InfoTitles
|
|
|
|
|
- ObservableCollection<Playlist> Playlists
|
|
|
|
|
- ObservableCollection<Artist> Artists
|
|
|
|
|
+ ObservableCollection<Album> Albums
|
|
|
|
|
+ ObservableCollection<CustomTitle> CustomTitles
|
|
|
|
|
+ ObservableCollection<InfoTitle> InfoTitles
|
|
|
|
|
+ ObservableCollection<Playlist> Playlists
|
|
|
|
|
+ ObservableCollection<Artist> Artists
|
|
|
|
|
+ Album CurrentAlbum
|
|
|
|
|
+ Playlist CurrentPlaylist
|
|
|
|
|
+ InfoTitle CurrentInfoTitle
|
|
|
|
@ -283,35 +285,35 @@ class Manager {
|
|
|
|
|
+ InfoTitle GetInfoTitleByName(string name)
|
|
|
|
|
+ Album GetAlbumByName(string name)
|
|
|
|
|
+ Album GetAlbumById(long id)
|
|
|
|
|
# void OnPropertyChanged([CallerMemberName] string propertyName = null)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Album o-- "+ Artist" Artist
|
|
|
|
|
Album *-- "+ InfoTitles*" InfoTitle
|
|
|
|
|
Album .. Manager
|
|
|
|
|
Album o--> "+ Artist" Artist
|
|
|
|
|
Album *--> "- infoTitles*" InfoTitle
|
|
|
|
|
Album ..> Manager
|
|
|
|
|
|
|
|
|
|
Artist .. Manager
|
|
|
|
|
Artist ..> Manager
|
|
|
|
|
|
|
|
|
|
Playlist o-- "+ Titles*" CustomTitle
|
|
|
|
|
Playlist .. Manager
|
|
|
|
|
Playlist o--> "- titles*" CustomTitle
|
|
|
|
|
Playlist ..> Manager
|
|
|
|
|
|
|
|
|
|
Title .. Manager
|
|
|
|
|
Title ..> Manager
|
|
|
|
|
|
|
|
|
|
CustomTitle --|> Title
|
|
|
|
|
|
|
|
|
|
InfoTitle --|> Title
|
|
|
|
|
InfoTitle o--> "+ Genre" Genre
|
|
|
|
|
InfoTitle o--> "+ Artist" Artist
|
|
|
|
|
InfoTitle o--> "+ Feat*" Artist
|
|
|
|
|
|
|
|
|
|
Manager o--> "+ Albums*" Album
|
|
|
|
|
Manager o--> "+ Artists*" Artist
|
|
|
|
|
Manager o--> "+ InfoTitles*" InfoTitle
|
|
|
|
|
Manager o--> "+ Playlists*" Playlist
|
|
|
|
|
Manager o--> "+ CustomTitles*" CustomTitle
|
|
|
|
|
Manager o--> "+ CurrentAlbum" Album
|
|
|
|
|
Manager o--> "+ CurrentPlaylist" Playlist
|
|
|
|
|
Manager o--> "+ CurrentInfoTitle" InfoTitle
|
|
|
|
|
Manager o--> "+ CurrentPlaying" CustomTitle
|
|
|
|
|
InfoTitle o--> "- feat*" Feat
|
|
|
|
|
|
|
|
|
|
Manager o--> "- albums*" Album
|
|
|
|
|
Manager o--> "- artists*" Artist
|
|
|
|
|
Manager o--> "- infoTitles*" InfoTitle
|
|
|
|
|
Manager o--> "- playlists*" Playlist
|
|
|
|
|
Manager o--> "- customTitles*" CustomTitle
|
|
|
|
|
Manager o--> "- currentAlbum" Album
|
|
|
|
|
Manager o--> "- currentPlaylist" Playlist
|
|
|
|
|
Manager o--> "- currentInfoTitle" InfoTitle
|
|
|
|
|
Manager o--> "- currentPlaying" CustomTitle
|
|
|
|
|
|
|
|
|
|
@enduml
|
|
|
|
|
```
|
|
|
|
@ -615,15 +617,18 @@ class StubPlaylist {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
LinqXmlSerialization --|> IDataManager
|
|
|
|
|
LinqXmlSerialization o--> "- stubInfoTitle" StubInfoTitle
|
|
|
|
|
|
|
|
|
|
StubManager --|> IDataManager
|
|
|
|
|
StubManager *--> "+ StubArtist" StubArtist
|
|
|
|
|
StubManager *--> "+ StubPlaylist" StubPlaylist
|
|
|
|
|
StubManager *--> "+ StubAlbum" StubAlbum
|
|
|
|
|
StubManager *--> "+ StubInfoTitle" StubInfoTitle
|
|
|
|
|
StubManager *--> "+ StubCustomTitle" StubCustomTitle
|
|
|
|
|
StubInfoTitle *--> "+ StubArtist" StubArtist
|
|
|
|
|
StubAlbum *--> "+ StubArtist" StubArtist
|
|
|
|
|
LinqXmlSerialization o--> "+ StubInfoTitle" StubInfoTitle
|
|
|
|
|
|
|
|
|
|
StubInfoTitle *--> "- stubAlbum" StubAlbum
|
|
|
|
|
|
|
|
|
|
StubAlbum *--> "- stubArtist" StubArtist
|
|
|
|
|
|
|
|
|
|
@enduml
|
|
|
|
|
```
|
|
|
|
@ -687,11 +692,11 @@ class StubManager
|
|
|
|
|
}
|
|
|
|
|
class Manager {}
|
|
|
|
|
|
|
|
|
|
StubAlbum o--> "+ Albums*" Album
|
|
|
|
|
StubArtist *--> "+ Artists*" Artist
|
|
|
|
|
StubCustomTitle *--> "+ CustomTitles*" CustomTitle
|
|
|
|
|
StubInfoTitle *--> "+ InfoTitles*" InfoTitle
|
|
|
|
|
StubPlaylist *--> "+ Playlists*" Playlist
|
|
|
|
|
StubAlbum o--> "- albums*" Album
|
|
|
|
|
StubArtist *--> "- artists*" Artist
|
|
|
|
|
StubCustomTitle *--> "- customTitles*" CustomTitle
|
|
|
|
|
StubInfoTitle *--> "- infoTitles*" InfoTitle
|
|
|
|
|
StubPlaylist *--> "- playlists*" Playlist
|
|
|
|
|
|
|
|
|
|
IDataManager ..> Album
|
|
|
|
|
IDataManager ..> Artist
|
|
|
|
@ -700,11 +705,11 @@ IDataManager ..> CustomTitle
|
|
|
|
|
IDataManager ..> Playlist
|
|
|
|
|
IDataManager ..> Genre
|
|
|
|
|
|
|
|
|
|
LinqXmlSerialization o--> "+ Artists*" Artist
|
|
|
|
|
LinqXmlSerialization o--> "+ Albums*" Album
|
|
|
|
|
LinqXmlSerialization o--> "+ Playlists*" Playlist
|
|
|
|
|
LinqXmlSerialization o--> "+ Infotitles*" InfoTitle
|
|
|
|
|
LinqXmlSerialization o--> "+ Customtitles*" CustomTitle
|
|
|
|
|
LinqXmlSerialization o--> "- artists*" Artist
|
|
|
|
|
LinqXmlSerialization o--> "- albums*" Album
|
|
|
|
|
LinqXmlSerialization o--> "- playlists*" Playlist
|
|
|
|
|
LinqXmlSerialization o--> "- infotitles*" InfoTitle
|
|
|
|
|
LinqXmlSerialization o--> "- customtitles*" CustomTitle
|
|
|
|
|
|
|
|
|
|
StubManager ..> InfoTitle
|
|
|
|
|
StubManager ..> Artist
|
|
|
|
|