示例#1
0
        public async Task <ActionResult> Registrar(Usuario usuario)
        {
            var mensagensDeErro = ServicoDeValidacaoDeGravacaoDeUsuario.Validar(usuario);

            if (mensagensDeErro.Any())
            {
                return(BadRequest(mensagensDeErro));
            }

            var identityUser = new IdentityUser
            {
                UserName       = usuario.Email,
                Email          = usuario.Email,
                EmailConfirmed = true
            };

            var result = await userManager.CreateAsync(identityUser, usuario.Senha);

            if (!result.Succeeded)
            {
                return(BadRequest(result.Errors));
            }

            var claims = new List <Claim>
            {
                new Claim("Nome", usuario.Nome),
                new Claim("Email", usuario.Email),
                new Claim("Perfis", usuario.PerfisTexto)
            };

            await userManager.AddClaimsAsync(identityUser, claims);

            return(CreatedAtAction(nameof(Obter), new { Id = identityUser.Id }, userManager.FindByIdAsync(identityUser.Id)));
        }
示例#2
0
        public async Task <IActionResult> Atualizar(String identificador, Usuario usuario)
        {
            if (identificador != usuario.Id)
            {
                return(BadRequest());
            }

            var mensagensDeErro = ServicoDeValidacaoDeGravacaoDeUsuario.Validar(usuario, false);

            if (mensagensDeErro.Any())
            {
                return(BadRequest(mensagensDeErro));
            }

            var usuarioExistente = await userManager.FindByIdAsync(usuario.Id);

            if (usuarioExistente == null)
            {
                return(NotFound());
            }


            usuarioExistente.UserName = usuario.Email;
            usuarioExistente.Email    = usuario.Email;


            var claims = new List <Claim>
            {
                new Claim("Nome", usuario.Nome),
                new Claim("Email", usuario.Email),
                new Claim("Perfis", usuario.PerfisTexto)
            };

            await userManager.UpdateAsync(usuarioExistente);

            await userManager.RemoveClaimsAsync(usuarioExistente, await userManager.GetClaimsAsync(usuarioExistente));

            await userManager.AddClaimsAsync(usuarioExistente, claims);

            //falta senha

            return(NoContent());
        }