
---





### API - ALL IN !
*Contexte* : Api pour le projet universitaire de troisieme année (B.U.T Informatique de Clermont-Ferrand) nommé **All In**.
# Répartition du gitlab
[**Sources**](Sources) : **Code de l'application**
[**Documentation**](Documentation) : **Documentation de l'application**
👉 [**Solution de l'application**](Sources/AllIn.sln)
## Diagramme de classes du modèle
```mermaid
classDiagram
direction LR;
class LargeImage{
+/Base64 : string
}
class User{
+/ Id : string
+/ Pseudo : string
+/ Mail : string
+/ Password : string
+ CreationDate : DateTime
+ AllCoins : int
~ AddGroup(group : Group) bool
~ RemoveGroup(group : Group) bool
}
User --> "1" LargeImage : Image
Group --> "1" LargeImage : Image
class Bet{
+/ Id : string
+/ Title : string
+/ Name : string
+/ Choices : List
+/ Theme: string
+/ Status: bool
+ Description : string
+ StartDate : DateTime
+ EndDate : DateTime
}
Bet --> "*" User : Dictionary~User,Mise~
class Mise{
+ Cost : int
+ Choice : string
}
class Group{
+/ Id : string
+/ Name : string
+ CreationDate : DateTime
}
User --> "*" Group : groups
```
## Diagramme de classes du modèle
```mermaid
classDiagram
direction LR;
class IGenericDataManager~T~{
<>
GetNbItems() Task~int~
GetItems(index : int, count : int, orderingPropertyName : string?, descending : bool) Task~IEnumerable~T~~
GetItemById(id: string)
GetNbItemsByName(substring : string)
GetItemsByName(substring : string, index : int, count : int, orderingPropertyName : string?, descending : bool) Task~IEnumerable~T~~
UpdateItem(oldItem : T, newItem : T) Task~T~~
AddItem(item : T) Task~T~
DeleteItem(item : T) Task~bool~
}
class IUsersManager{
<>
GetItemByMail(mail : string)
GetNbItemsByGroup(group : Group)
GetItemsByGroup(group : Group, index : int, count : int, orderingPropertyName : string?, descending : bool) Task~IEnumerable~T~~
GetNbItemsByAllCoins(allCoins : int)
GetItemsByAllCoins(allCoins : int, index : int, count : int, orderingPropertyName : string?, descending : bool) Task~IEnumerable~T~~
}
class IBetsManager{
<>
GetNbItemsByUser(user : User?)
GetItemsByUser(user : User?, index : int, count : int, orderingPropertyName : string?, descending : bool) Task~IEnumerable~Bet?~~
GetNbItemsByDescription(description : string)
GetItemsByDescription(description : string, index : int, count : int, orderingPropertyName : string?, descending : bool) Task~IEnumerable~Bet?~~
}
class IGroupsManager{
<>
}
IGenericDataManager~User?~ <|.. IUsersManager : T--User?
IGenericDataManager~Bet?~ <|.. IBetsManager : T--Bet?
IGenericDataManager~Group?~ <|.. IGroupsManager : T--Group?
class IDataManager{
<>
}
IUsersManager <-- IDataManager : UsersMgr
IBetsManager <-- IDataManager : BetsMgr
IGroupsManager <-- IDataManager : GroupsMgr
```
## Diagramme de classes simplifié du Stub
```mermaid
classDiagram
direction TB;
IDataManager <|.. StubData
UsersManager ..|> IUsersManager
StubData --> UsersManager
BetsManager ..|> IBetsManager
StubData --> BetsManager
GroupsManager ..|> IGroupsManager
StubData --> GroupsManager
StubData --> "*" User
StubData --> "*" Bet
StubData --> "*" Group
```