Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -103,4 +103,5 @@ $RECYCLE.BIN/
# Windows shortcuts
*.lnk

# End of https://www.toptal.com/developers/gitignore/api/windows,macos,linux,dotnetcore,visualstudiocode
# End of https://www.toptal.com/developers/gitignore/api/windows,macos,linux,dotnetcore,visualstudiocode
.fake
9 changes: 4 additions & 5 deletions Api/Dominio/DTOs/AdministradorDTO.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@

using MinimalApi.Dominio.Enuns;

namespace MinimalApi.DTOs;
public class AdministradorDTO
{
public string Email { get;set; } = default!;
public string Senha { get;set; } = default!;
public Perfil? Perfil { get;set; } = default!;
}
public string Email { get; set; } = default!;
public string Senha { get; set; } = default!;
public Perfil? Perfil { get; set; } = default!;
}
7 changes: 3 additions & 4 deletions Api/Dominio/DTOs/LoginDTO.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@

namespace MinimalApi.DTOs;
public class LoginDTO
{
public string Email { get;set; } = default!;
public string Senha { get;set; } = default!;
}
public string Email { get; set; } = default!;
public string Senha { get; set; } = default!;
}
9 changes: 4 additions & 5 deletions Api/Dominio/DTOs/VeiculoDTO.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@

namespace MinimalApi.DTOs;
public record VeiculoDTO
{
public string Nome { get;set; } = default!;
public string Marca { get;set; } = default!;
public int Ano { get;set; } = default!;
}
public string Nome { get; set; } = default!;
public string Marca { get; set; } = default!;
public int Ano { get; set; } = default!;
}
12 changes: 6 additions & 6 deletions Api/Dominio/Entidades/Administrador.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ public class Administrador
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get;set; } = default!;
public int Id { get; set; } = default!;

[Required]
[StringLength(255)]
public string Email { get;set; } = default!;
public string Email { get; set; } = default!;

[Required]
[StringLength(50)]
public string Senha { get;set; } = default!;

public string Senha { get; set; } = default!;
[Required]
[StringLength(10)]
public string Perfil { get;set; } = default!;
}
public string Perfil { get; set; } = default!;
}
12 changes: 6 additions & 6 deletions Api/Dominio/Entidades/Veiculo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ public class Veiculo
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get;set; } = default!;
public int Id { get; set; } = default!;

[Required]
[StringLength(150)]
public string Nome { get;set; } = default!;
public string Nome { get; set; } = default!;

[Required]
[StringLength(100)]
public string Marca { get;set; } = default!;

public string Marca { get; set; } = default!;
[Required]
public int Ano { get;set; } = default!;
}
public int Ano { get; set; } = default!;
}
2 changes: 1 addition & 1 deletion Api/Dominio/Enuns/Perfil.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ public enum Perfil
{
Adm,
Editor
}
}
12 changes: 7 additions & 5 deletions Api/Dominio/Interfaces/IAdministradorServico.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@

using MinimalApi.Dominio.Entidades;
using MinimalApi.DTOs;
using System.Collections.Generic;

namespace MinimalApi.Dominio.Interfaces;

public interface IAdministradorServico
{
Administrador? Login(LoginDTO loginDTO);
Administrador Incluir(Administrador administrador);
Administrador? BuscaPorId(int id);
List<Administrador> Todos(int? pagina);
}
Administrador? Incluir(Administrador administrador);
List<Administrador> Todos(int? pagina = 1);
Administrador? BuscarPorId(int id);
void Atualizar(Administrador administrador);
void Apagar(Administrador administrador);
}
6 changes: 3 additions & 3 deletions Api/Dominio/Interfaces/IVeiculoServico.cs
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@

using MinimalApi.Dominio.Entidades;
using MinimalApi.DTOs;
using System.Collections.Generic;

namespace MinimalApi.Dominio.Interfaces;

public interface IVeiculoServico
{
List<Veiculo> Todos(int? pagina = 1, string? nome = null, string? marca = null);
Veiculo? BuscaPorId(int id);
Veiculo? BuscarPorId(int id);
void Incluir(Veiculo veiculo);
void Atualizar(Veiculo veiculo);
void Apagar(Veiculo veiculo);
}
}
10 changes: 4 additions & 6 deletions Api/Dominio/ModelViews/AdministradorLogado.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
using MinimalApi.Dominio.Enuns;

namespace MinimalApi.Dominio.ModelViews;

public record AdministradorLogado
{
public string Email { get;set; } = default!;
public string Perfil { get;set; } = default!;
public string Token { get;set; } = default!;
}
public string Email { get; set; } = default!;
public string Perfil { get; set; } = default!;
public string Token { get; set; } = default!;
}
48 changes: 31 additions & 17 deletions Api/Dominio/Servicos/AdministradorServico.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
using MinimalApi.Dominio.Entidades;
using MinimalApi.DTOs;
using MinimalApi.Infraestrutura.Db;
using MinimalApi.Dominio.Entidades;
using MinimalApi.Dominio.Interfaces;
using MinimalApi.Infraestrutura.Db;
using System.Linq;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;

namespace MinimalApi.Dominio.Servicos;

Expand All @@ -13,34 +16,45 @@ public AdministradorServico(DbContexto contexto)
_contexto = contexto;
}

public Administrador? BuscaPorId(int id)
{
return _contexto.Administradores.Where(v => v.Id == id).FirstOrDefault();
}

public Administrador Incluir(Administrador administrador)
public Administrador? Incluir(Administrador administrador)
{
_contexto.Administradores.Add(administrador);
_contexto.SaveChanges();

return administrador;
}

public Administrador? Login(LoginDTO loginDTO)
{
var adm = _contexto.Administradores.Where(a => a.Email == loginDTO.Email && a.Senha == loginDTO.Senha).FirstOrDefault();
var adm = _contexto.Administradores
.Where(a => a.Email == loginDTO.Email && a.Senha == loginDTO.Senha)
.FirstOrDefault();
return adm;
}

public List<Administrador> Todos(int? pagina)
public Administrador? BuscarPorId(int id)
{
var query = _contexto.Administradores.AsQueryable();
return _contexto.Administradores.Find(id);
}

public List<Administrador> Todos(int? pagina = 1)
{
var query = _contexto.Administradores.AsQueryable();
int itensPorPagina = 10;

if(pagina != null)
query = query.Skip(((int)pagina - 1) * itensPorPagina).Take(itensPorPagina);

if (pagina != null)
{
query = query.Skip(((int)pagina.Value - 1) * itensPorPagina).Take(itensPorPagina);
}
return query.ToList();
}
}

public void Atualizar(Administrador administrador)
{
_contexto.Administradores.Update(administrador);
_contexto.SaveChanges();
}
public void Apagar(Administrador administrador)
{
_contexto.Administradores.Remove(administrador);
_contexto.SaveChanges();
}
}
18 changes: 11 additions & 7 deletions Api/Dominio/Servicos/VeiculoServico.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
using MinimalApi.Dominio.Entidades;
using MinimalApi.DTOs;
using MinimalApi.Infraestrutura.Db;
using MinimalApi.Dominio.Entidades;
using MinimalApi.Dominio.Interfaces;
using MinimalApi.Infraestrutura.Db;
using Microsoft.EntityFrameworkCore;
using System.Linq;
using System.Collections.Generic;

namespace MinimalApi.Dominio.Servicos;

Expand All @@ -26,7 +28,7 @@ public void Atualizar(Veiculo veiculo)
_contexto.SaveChanges();
}

public Veiculo? BuscaPorId(int id)
public Veiculo? BuscarPorId(int id)
{
return _contexto.Veiculos.Where(v => v.Id == id).FirstOrDefault();
}
Expand All @@ -40,16 +42,18 @@ public void Incluir(Veiculo veiculo)
public List<Veiculo> Todos(int? pagina = 1, string? nome = null, string? marca = null)
{
var query = _contexto.Veiculos.AsQueryable();
if(!string.IsNullOrEmpty(nome))
if (!string.IsNullOrEmpty(nome))
{
query = query.Where(v => EF.Functions.Like(v.Nome.ToLower(), $"%{nome}%"));
query = query.Where(v => EF.Functions.Like(v.Nome.ToLower(), $"%{nome.ToLower()}%"));
}

int itensPorPagina = 10;

if(pagina != null)
{
query = query.Skip(((int)pagina - 1) * itensPorPagina).Take(itensPorPagina);

}

return query.ToList();
}
}
}
25 changes: 17 additions & 8 deletions Api/Program.cs
Original file line number Diff line number Diff line change
@@ -1,11 +1,20 @@
using MinimalApi;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;

IHostBuilder CreateHostBuilder(string[] args){
return Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
namespace MinimalApi
{
public class Program
{
webBuilder.UseStartup<Startup>();
});
}
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}

CreateHostBuilder(args).Build().Run();
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
}
Loading