You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4.2 KiB


  Docker   CSharp   Visual Studio   Swagger   .NET

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 : Code de l'application

Documentation : Documentation de l'application

👉 Solution de l'application

Diagramme de classes du modèle

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<string>
    +/ 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

classDiagram
direction LR;
class IGenericDataManager~T~{
    <<interface>>
    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{
    <<interface>>
    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{
    <<interface>>
    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{
    <<interface>>
}

IGenericDataManager~User?~ <|.. IUsersManager : T--User?
IGenericDataManager~Bet?~ <|.. IBetsManager : T--Bet?
IGenericDataManager~Group?~ <|.. IGroupsManager : T--Group?
class IDataManager{
    <<interface>>
}
IUsersManager <-- IDataManager : UsersMgr
IBetsManager <-- IDataManager : BetsMgr
IGroupsManager <-- IDataManager : GroupsMgr

Diagramme de classes simplifié du Stub

classDiagram
direction TB;

IDataManager <|.. StubData

UsersManager ..|> IUsersManager
StubData --> UsersManager

BetsManager ..|> IBetsManager
StubData --> BetsManager

GroupsManager ..|> IGroupsManager
StubData --> GroupsManager

StubData --> "*" User
StubData --> "*" Bet
StubData --> "*" Group
Licence Creative Commons