<div align = center>

![Comment cloner](doc/Images/Banner.png)

</div>


**Thème du projet** : Réalisation d'une API et d'un ORM (Entity Framework) qui seront reliés à une base de données dans le thème de League of Legends <img src="https://logo-marque.com/wp-content/uploads/2020/11/League-of-Legends-Embleme.png" width="40" >
</br>

<img src="doc/Images/Title-Répartition.png" width="400">

La racine de mon GitLab contient deux dossiers essentiels pour le projet :

[**src**](src) : **Toute la partie codage de l'application**

[**doc**](doc) : **Documentation de l'application**

👉 [**Solution de l'application**](src/EntityFramework_LoL/Sources/LeagueOfLegends.sln)


<img src="doc/Images/Title-Fonctionnement.png" width="460" >

- ### Comment récupérer le projet ? 

Tout d'abord, si ce n'est pas déjà fait, clonez le dépôt de la branche **master/main**. Pour ce faire, copiez le lien URL du dépôt git :

<div align = center>

![Comment cloner](doc/Images/HowToClone.png)

</div>

Vous pouvez le cloner via un terminal dans le répertoire de votre choix en utilisant la commande : **git clone https://codefirst.iut.uca.fr/git/emre.kartal/LolProject.git**. Sinon, vous pouvez utiliser Visual Studio et cloner le dépôt en entrant le lien :

<div align = center>

![Page Visual studio](doc/Images/PageVS.png)

</div>

:information_source: *Si vous ne disposez pas de Visual Studio, allez sur le site [Microsoft Visual Studio](https://visualstudio.microsoft.com/fr/downloads/) pour pouvoir le télécharger !!!*

- ### Comment lancer l'API dotnet ? 

Pour pouvoir utiliser toutes les requêtes de l'API, il est nécessaire de récupérer le projet si cela n'a pas été fait, puis de le lancer à partir de Visual Studio. Vous pouvez directement cliquer sur la solution du projet. Ensuite, dans les projets de démarrage, choisissez "Api-Lol" :

<div align = center>

![Lancer l'API](doc/Images/Api_Launcher.png)

</div>

Normalement, tout est bon et vous serez redirigé vers Swagger, qui est l'interface graphique permettant d'effectuer facilement des requêtes. Il vous suffit ensuite de choisir la version en haut à droite. La version 3.0 est normalement la plus récente et la plus performante en termes de gestion d'erreur :

<div align = center>

![Version API](doc/Images/Swagger_Version.png)

</div>

- ### Comment lancer Le projet Entity Framework ? 

Afin de générer les migrations et les tables, vous devez avoir installé correctement EntityFrameworkCore. Pour cela il existe la commande : **dotnet tool install --global dotnet-ef**, qui peut être lancé à partir d'un terminal. Si elle est déjà installée mais n'a pas la bonne version : **dotnet tool update --global dotnet-ef** (oui, il n'y a que l'*install* qui change. Vous êtes perspicace !).

Assurez-vous également d'avoir installé les packages Nuget suivants sur Visual Studio au préalable :

<div align = center>

![package nuget](doc/Images/Package_Nuget.png)

</div>

Ensuite, sur le terminal PowerShell ou Visual Studio, lancer la migration via la commande : **dotnet ef migrations add monNomDeMigration** (n'oubliez pas de vous situer dans le dossier "/MyFlib" lorsque vous l'exécutez)!

- ### Comment voir la base de données ?

C'est bien beau toutes ces étapes, mais s’il n'y a pas de résultat, à quoi cela sert !

Tout d'abord, veuillez regarder dans l'onglet Extensions si l'outil **SQLite and SQL Server Compact Toolbax** est bien installé.

Puis, afin de visualiser la migration dans la base de données, cliquer dans l'onglet **Outils**->**SQLLite/ SQL Server compact Toolbox** :

<div align = center>

![start BD](doc/Images/Start_BD.png)

</div>

Et enfin cliquez sur l'icône ci-dessous pour établir la connexion à la solution en cours :

<div align = center>

![Connection BD](doc/Images/Connection_BD.png)

</div>

Vous pouvez désormais voir toutes les tables qui y sont enregistrées ! Si vous souhaitez ajouter des modifications à la base de données et les visualiser, 
réalisez à nouveau la migration (ou mettez à jour celle actuelle), puis supprimez toutes les tables et lancez la commande : **dotnet ef database update** et enfin rafraîchissez la base de données !

:information_source: *Notez qu'il est également possible, grâce à SQLLite, d'ajouter, modifier ou supprimer des données dans les tables.*

<img src="doc/Images/Title-Environnement.png" width="400" >

Mon environnement de travail est basé sur un outil et un langage en particulier : 👇

<div align = center>

---

&nbsp; ![Dotnet](https://img.shields.io/badge/Core-000?style=for-the-badge&logo=Dotnet&logoColor=white&color=purple)
&nbsp; ![C#](https://img.shields.io/badge/Csharp-000?style=for-the-badge&logo=csharp&logoColor=white&color=blue)

---

</div>

<img src="doc/Images/Title-Technicien.png" width="400" >

⚙️ Emre KARTAL
<br>

<div align = center>
© PM2
</div>