From c6a9a5dcce0f80311eec5381d4799fd731622605 Mon Sep 17 00:00:00 2001 From: fede Date: Sat, 19 Oct 2024 17:59:01 -0300 Subject: [PATCH] refactor: arreglado formato de los repositorios Signed-off-by: fede --- Modelo/RepositorioBase.cs | 8 ++++-- Modelo/RepositorioUsuarios.cs | 47 +++++++++++++++++++++++------------ 2 files changed, 37 insertions(+), 18 deletions(-) diff --git a/Modelo/RepositorioBase.cs b/Modelo/RepositorioBase.cs index 1aefbfe..bfeb5a3 100644 --- a/Modelo/RepositorioBase.cs +++ b/Modelo/RepositorioBase.cs @@ -4,12 +4,17 @@ using Microsoft.EntityFrameworkCore; namespace Modelo; -public abstract class RepositorioBase where T : class, new() +public abstract class RepositorioBase + where T : class, new() + where S : new() { protected AlquilaFacilContext Context { get; set; } = new AlquilaFacilContext(); public abstract ReadOnlyCollection Listar(); + private static readonly S instance = new(); + public static S Singleton { get{return instance;}} + public bool Guardar(){ bool ret = false; try @@ -24,5 +29,4 @@ public abstract class RepositorioBase where T : class, new() } return ret; } - } diff --git a/Modelo/RepositorioUsuarios.cs b/Modelo/RepositorioUsuarios.cs index 0aa74fe..aa63e57 100644 --- a/Modelo/RepositorioUsuarios.cs +++ b/Modelo/RepositorioUsuarios.cs @@ -2,34 +2,49 @@ using System.Collections.ObjectModel; using System.Security.Cryptography; using System.Text; using Entidades.Dto; -using Microsoft.EntityFrameworkCore; +using Entidades; + namespace Modelo; -public class RepositorioUsuarios: RepositorioBase +public class RepositorioUsuarios: RepositorioBase { - public static RepositorioUsuarios Singleton = new(); - public Usuario? CheckUsuario(LoginDto logindto) { + public bool CheckUsuario(LoginDto logindto) { - byte[] Contraseña = HacerHash(logindto.Contraseña); + string Contraseña = HacerHash(logindto.Contraseña); - bool usu = Context.Inquilinos.Any(x=>x.Email == logindto.Email && x.Contrasena == Contraseña); - if (usu){ - return Context.Inquilinos.FirstOrDefault(x=>x.Email == logindto.Email); - } - usu = Context.Propietarios.Any(x=>x.Email == logindto.Email && x.Contrasena == Contraseña); - if (usu){ - return Context.Propietarios.FirstOrDefault(x=>x.Email == logindto.Email); - } - return null; + Usuario? usu = Context.Usuarios.FirstOrDefault(a => a.email == logindto.Email); + if (usu == null) return false; + + string hashdb = Encoding.UTF8.GetString(usu.contraseña); + + if (hashdb == Contraseña) return true; + return false; + } public override ReadOnlyCollection Listar() { throw new NotImplementedException(); } - public byte[] HacerHash(string pass){ + + public string HacerHash(string pass){ var buf = SHA256.HashData(Encoding.UTF8.GetBytes(pass)); - return Encoding.UTF8.GetBytes(BitConverter.ToString(buf).Replace("-","").ToLower()); + return BitConverter.ToString(buf).Replace("-",""); } + public bool CheckToken(TokenDto token){ + var usu = Context.Usuarios.FirstOrDefault(x => x.email == token.Email); + if (usu == null) return false; + + return usu.token == token.Token; + + } + + public void GuardarToken(LoginDto login, string tokenString) + { + var usu = Context.Usuarios.FirstOrDefault(x => x.email == login.Email); + if (usu == null) return; + usu.token = tokenString; + Guardar(); + } }