Exemple #1
0
        public static UsuariosEntidad Map(CrearUsuarioDTO entidad)
        {
            UsuariosEntidad usuario = new UsuariosEntidad();

            //var lstUsuariosRoles = new List<UsuariosRolesEntidad>();

            if (entidad != null)
            {
                usuario.UserName     = entidad.Usuario;
                usuario.PasswordHash = entidad.Contrasena;
                usuario.Email        = entidad.Email;


                //if (entidad.Roles.Count > 0)
                //{

                //    foreach (var role in entidad.Roles)
                //    {

                //        lstUsuariosRoles.Add(new UsuariosRolesEntidad
                //        {
                //            UserId = usuario.Id,
                //            RoleId = role
                //        });

                //    }

                //    usuario.UsuariosRoles = lstUsuariosRoles;

                //}
            }

            return(usuario);
        }
        public async Task <IActionResult> CrearUsuarioAsync([FromBody] CrearUsuarioDTO usuarioDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var usuario = UsuarioMapper.Map(usuarioDTO);

            if (await _usuariosServicios.ObtenerUsuariosNombreAsync(usuarioDTO.Usuario) != null)
            {
                return(BadRequest("El nombre de usuario ya esta registrado intentelo con uno diferente"));
            }

            if (await _usuariosServicios.ObtenerUsuarioEmailAsync(usuario.Email) != null)
            {
                return(BadRequest("El correo electronico ya esta registrado"));
            }

            var idUsuarioCreado = await _usuariosServicios.CrearUsuarioAsync(usuario);


            if (idUsuarioCreado.Equals(Guid.Empty))
            {
                return(BadRequest("El usuario no se creo correctamente"));
            }

            var usuarioCreado = await _usuariosServicios.ObtenerUsuarioIdAsync(idUsuarioCreado);

            var usuarioCreadoDTO = _mapper.Map <UsuariosDTO>(usuarioCreado);

            var correoEnviado = new Gmail(usuario.Email, "Te has registrado correctamente", "Bienvenido te has registrado en nuestro sistema");

            correoEnviado.Enviar();

            return(CreatedAtRoute(
                       "ObtenerUsuarioId",
                       new { id = idUsuarioCreado },
                       usuarioCreadoDTO
                       ));
        }
Exemple #3
0
        public IActionResult Post([FromBody] CrearUsuarioDTO usuarioDTO)
        {
            using (EFContext ctx = new EFContext())
            {
                // Hasheamos la contraseña
                var hash = HashContrasena.GetHash(usuarioDTO.Contrasena);

                // Construimos nuestro modelo Usuario
                var usuarioModel = new UsuariosModel()
                {
                    Usuario    = usuarioDTO.Usuario,
                    Correo     = usuarioDTO.Correo,
                    Contrasena = hash.Contrasena,
                    Sal        = hash.Sal,
                    Sexo       = usuarioDTO.Sexo,
                };
                var usuario = ctx.Usuarios.Add(usuarioModel);

                try
                {
                    ctx.SaveChanges();
                    return(Created($"api/usuarios/{usuario.Entity.Id}/", ctx.Usuarios
                                   .Where(r => r.Id == usuario.Entity.Id)
                                   .Select(r => new { r.Id, r.Correo, r.Usuario, r.Sexo, r.FechaCreacion })
                                   .FirstOrDefault()));
                }
                catch (DbUpdateException ex)
                {
                    SqlException innerException = ex.InnerException as SqlException;
                    if (innerException != null && (innerException.Number == 2627 || innerException.Number == 2601))
                    {
                        return(Conflict(new { message = "El registro ya existe" }));
                    }
                    else
                    {
                        throw;
                    }
                }
            }
        }