---
# System prepended metadata

title: Client Poplee.Training

---

# Client Poplee.Training

## Arboresseance
```plantuml
@startsalt
{
{T
+back
++ Poplee.Training.Client
+++ Poplee.Training.Client.Abstraction
+++ Poplee.Training.Client.Infra
+++ Poplee.Training.Client.Infra.Test    
    ...
}
}
@endsalt
```

### Poplee.Training.Client.Abstraction
C'est le seul csproj qu'il faut ajouter en dépendance. 
C'est le cproj qui exposes toutes les interfaces et les classes qu'on peut utiliser dans Poplee.Talent.

### Poplee.Training.Client.Infra
C'est dans ce cproj qu'on fetch les information depuis Talent.Training et on les rend disponibles à Poplee.Training.Client.Abstraction.

### Poplee.Training.Client.Infra.Test
L'infra est conçue en TDD pour simplifier le développement et fiabiliser la solution.


## Détails techniques

### Swagger Connected Service
![](https://i.imgur.com/wqKP0bo.png)
Ce plugin VS permet d'auto-generer depuis un fichier openapi le client C#. 

Le code qui est auto-géneré est juste intéressant à lire pour s'inspirer dans le bootstrap, mais je ne utilise ni je conseil de l'utiliser directement.

### Moq.Contrib.HttpClient
*"A set of extension methods for mocking HttpClient and IHttpClientFactory with Moq."*
https://github.com/maxkagamine/Moq.Contrib.HttpClient

J'ai eu besoin de cette libraire car moquer des appels http c'est assez galere et je peux ainsi reduire le moq à quelques dizaine de ligne de code, plutot lisibles.

## Etat du projet
- [x] Création des csproj
- [x] Bootstrap suite de tests
- [x] Validation des models via les TU
- [ ] Appel à l'api training-demand
- [ ] Lecture du apptokent dans l'appsetting
- [ ] Peaufiner Poplee.Training.Client.Abstraction

