# 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