diff --git a/Aspnet/Controllers/InquilinoController.cs b/Aspnet/Controllers/InquilinoController.cs index 8e45298..ac9be46 100644 --- a/Aspnet/Controllers/InquilinoController.cs +++ b/Aspnet/Controllers/InquilinoController.cs @@ -1,6 +1,8 @@ using Microsoft.AspNetCore.Mvc; using System.Text; using Entidades; +using Entidades.Dto; +using Modelo; namespace AlquilaFacil.Controllers; @@ -9,18 +11,34 @@ public class InquilinoController: ControllerBase { [HttpGet("api/inquilino")] - public IActionResult Get(){ + public IActionResult Get() { return Ok(); } [HttpPost("api/inquilino")] - public IActionResult Post([FromForm] Cliente inq){ - if (inq == null) return BadRequest("Inquilino inválido."); - if (inq.dni == 0 ) return BadRequest("No se especifico dni"); - if (inq.dni < 0 ) return BadRequest("Dni Invalido"); - - return Ok(); + public IActionResult Post([FromForm] CrearClienteDto cid) { + var ret = verificarCrearUsuario(cid); + if (ret is BadRequestResult) return ret; + + bool ret2 = RepositorioUsuarios.Singleton.AltaCliente(cid); + return (ret2) ? Ok() : BadRequest(); } + private IActionResult verificarCrearUsuario(CrearClienteDto cid) { + string msg = ""; + + if (cid.Usuario.email == string.Empty) msg += "Falta ingresar el email\n"; + if (cid.Usuario.contraseña.Length < 8) msg += "Por lo menos 8 caracteres en la contraseña\n"; + + if (cid.Cliente.apellido == string.Empty) msg += "Falta Ingresar apellido\n"; + if (cid.Cliente.nombre == string.Empty) msg += "Falta Ingresar nombre\n"; + if (cid.Cliente.dni <= 0) msg += "Falta Ingresar dni o elejiste un numero negativo\n"; + if (cid.Cliente.celular == string.Empty) msg += "Falta Ingresar Numero de Contacto\n"; + if (cid.Cliente.domicilio == string.Empty) msg += "Falta Ingresar Domicilio Legal"; + + if (msg == "") return Ok(); + return BadRequest(new {message = msg}); + } + } diff --git a/Entidades/Dto/CrearClienteDto.cs b/Entidades/Dto/CrearClienteDto.cs new file mode 100644 index 0000000..d734874 --- /dev/null +++ b/Entidades/Dto/CrearClienteDto.cs @@ -0,0 +1,6 @@ +namespace Entidades.Dto; + +public class CrearClienteDto { + public Cliente Cliente { get; set; } = new(); + public Usuario Usuario { get; set; } = new(); +} \ No newline at end of file diff --git a/Modelo/RepositorioInquilinos.cs b/Modelo/RepositorioInquilinos.cs new file mode 100644 index 0000000..dcf89c9 --- /dev/null +++ b/Modelo/RepositorioInquilinos.cs @@ -0,0 +1,6 @@ +using Modelo; + +public class RepositorioInquilinos: RepositorioBase +{ + +} \ No newline at end of file diff --git a/Modelo/RepositorioUsuarios.cs b/Modelo/RepositorioUsuarios.cs index aa63e57..d526736 100644 --- a/Modelo/RepositorioUsuarios.cs +++ b/Modelo/RepositorioUsuarios.cs @@ -6,8 +6,25 @@ using Entidades; namespace Modelo; -public class RepositorioUsuarios: RepositorioBase +public class RepositorioUsuarios: RepositorioBase { + public bool AltaCliente(CrearClienteDto cid){ + var usu = cid.Usuario; + var cli = cid.Cliente; + + var cant = Context.Usuarios + .GroupBy(u => u.id) + .Select(x => x.Count()) + .ToList(); + if (cant.Count < 1) return false; + + usu.id = cant[0]; + cli.idusuario = cant[0]; + + Context.Usuarios.Add(usu); + Context.Clientes.Add(cli); + return Guardar(); + } public bool CheckUsuario(LoginDto logindto) { string Contraseña = HacerHash(logindto.Contraseña); @@ -21,13 +38,7 @@ public class RepositorioUsuarios: RepositorioBase return false; } - - public override ReadOnlyCollection Listar() - { - throw new NotImplementedException(); - } - - public string HacerHash(string pass){ + private string HacerHash(string pass){ var buf = SHA256.HashData(Encoding.UTF8.GetBytes(pass)); return BitConverter.ToString(buf).Replace("-",""); } @@ -47,4 +58,5 @@ public class RepositorioUsuarios: RepositorioBase usu.token = tokenString; Guardar(); } + }