using System.Collections.ObjectModel; using System.Security.Cryptography; using System.Text; using Entidades.Dto; using Entidades; using System.Reflection.Metadata.Ecma335; namespace Modelo; public class RepositorioUsuarios: RepositorioBase { public bool AltaCliente(CrearClienteDto cid){ var cli = new Cliente { Dni = cid.dni, Nombre = cid.nombre, Domicilio = cid.domicilio, Apellido = cid.apellido, Celular = cid.celular, Email = cid.email, Contraseña = Encoding.UTF8.GetBytes(HacerHash(cid.contraseña)) }; var con = Context; var grupo = con.Grupos.Find(2); if (grupo == null || grupo.Id == 0) return false; con.Clientes.Add(cli); Guardar(con); con = Context; cli = con.Clientes.Find(cli.Dni) ?? new(); if (cli.Dni == 0) return false; cli.Idgrupos.Add(grupo); return Guardar(con); } public bool CheckUsuario(LoginDto logindto) { string Contraseña = HacerHash(logindto.Contraseña); Cliente? usu = Context.Clientes.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; } private string HacerHash(string pass){ var buf = SHA256.HashData(Encoding.UTF8.GetBytes(pass)); return BitConverter.ToString(buf).Replace("-",""); } public bool CheckToken(string email, string token){ var usu = Context.Clientes.FirstOrDefault(x => x.Email == email); if (usu == null) return false; return usu.Token == token; } public void GuardarToken(LoginDto login, string tokenString) { var con = Context; var usu = con.Clientes.FirstOrDefault(x => x.Email == login.Email); if (usu == null) return; usu.Token = tokenString; Guardar(con); } }