Projeto C# com .Net Core - Entity Framework Core.
Tags: csharp
Published: 2021-05-28 17:44:27

Fala Devs, 

Criei esse post para ajudar no meu aprendizado e espero que ele possa ser útil para toda a comunidade. 

O projeto irá descrever passo-a-passo para a criação de uma API Rest, que fornece um sistema de geração de número de cartão de crédito virtual, os cartões gerados serão associados a um e-mail para identificar a pessoa que está utilizando. 

São 2 endpoints, um receberá o e-mail da pessoa e retornará um objeto de resposta com número do cartão. E o outro endpoint irá listar, em ordem de criação, todos os cartões de um solicitante (utilizando e-mail como parâmetro). 

Implementação deverá ser escrita utilizando C#, .Net Core e Entity Framework Core. 

Para iniciar o processo vamos precisar: 

Visual Studio Code (versão compativel com seu sistema): https://code.visualstudio.com/Download
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a6uxfia7buoqia4ucdiw.png)

Extensão C# no VSCode: ![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/61pc4iox3yhs9a6hqi1m.png)

.NET Core: https://dotnet.microsoft.com/download/dotnet/3.1
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c37rnodg3s8jwe2tjo66.png)
  
Entity Framework Sqlite: https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.Sqlite/
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uuaqhqxhqstt8r7emdnz.png)

DBeaver Community:
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a8msn8j78yzn264bnqxk.png)

Criando um projeto web (Cmd, powershell...)
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pfn5hen1p1kbe1c1zw4s.png)

Criando Models:
UserInfo
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/scrkpd2p6xio6b96ltdw.png)
VirtualCreditCard
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xz1ds8z93ubdyay02awa.png)
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5xodjukyaz41jgzrxxcc.png)
VirtualCreditCardContext
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jht65lvopk2dcuj86ain.png)
  
Criando Controller:
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nawpxfmury7hu9f56956.png)
  
Criando Migration:

Ao criar a tabela do banco pelo (CMD, Powershell.... Os comandos são exigidos para atualizar os dados.

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sckw4gef1qljpe9o3r4v.png)
 
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/knbd2mon40a2qi0ya9yp.png)


![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/103m8i08pgjso00vnbnq.png)



![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ywire8twk02nid8uk6p9.png)


Criando Program.cs:
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q68t7tv4dxa3o0pt92vr.png)
 

Criando Startup.cs:
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wwn9m6zuhn342bin1etc.png)

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jocnn9zfllegx311uyjz.png)
_________________________________________________________________

Em appsettings.json incluir, para o banco:
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nf8xeu4o4ahpdjmvdqql.png)
  

Após a finalização os novos dados gerados vão alimentar a tabela criada. Além irá informar ao usuário todos os cartões gerados pelo e-mail.

Agradecimentos pelo desafio lançado por #VaiVoa. 

https://vaivoa.com/
https://www.linkedin.com/company/vaivoa/