public async Task <IActionResult> EditarFuncoes(UsuarioEditarFuncoesViewModel modelo)
        {
            if (ModelState.IsValid)
            {
                var usuario = await _userManager.FindByIdAsync(modelo.Id);

                var rolesUsuario = await _userManager.GetRolesAsync(usuario);

                var resultadoRemocao = await _userManager.RemoveFromRolesAsync(
                    usuario,
                    rolesUsuario.ToArray()
                    );

                if (resultadoRemocao.Succeeded)
                {
                    var funcoesSelecionadas =
                        modelo
                        .Funcoes
                        .Where(funcao => funcao.Selecionado)
                        .Select(funcao => funcao.Nome)
                        .ToArray();

                    foreach (var funcao in funcoesSelecionadas)
                    {
                        var resultadoAdicao = await _userManager.AddToRoleAsync(
                            usuario,
                            funcao
                            );
                    }

                    return(RedirectToAction("Index"));
                }
            }
            return(View());
        }
Exemple #2
0
        public async Task <IActionResult> Registrar(RegistroContaViewModel registro)
        {
            if (ModelState.IsValid)
            {
                var novoUsuario = new Usuario(registro);
                var result      = await _userManager.CreateAsync(novoUsuario, registro.Senha);

                if (result.Succeeded)
                {
                    await EnviaEmailConfirmacaoAsync(novoUsuario);

                    UsuarioEditarFuncoesViewModel EditFuncoes = new UsuarioEditarFuncoesViewModel()
                    {
                        Id           = novoUsuario.Id,
                        Email        = novoUsuario.Email,
                        NomeCompleto = novoUsuario.NomeCompleto,
                        UserName     = novoUsuario.Email
                    };

                    return(RedirectToAction("EditarFuncoes", "Usuario", EditFuncoes));
                }
                else
                {
                    AdicionaErros(result);
                }
            }
            return(View(registro));
        }
        public async Task <ActionResult> EditarFuncoes(UsuarioEditarFuncoesViewModel modelo)
        {
            if (ModelState.IsValid)
            {
                var usuario = await UserManager.FindByIdAsync(modelo.Id);

                var rolesUsuario = UserManager.GetRoles(usuario.Id);

                var resultadoRemocao = await UserManager.RemoveFromRolesAsync(
                    usuario.Id,
                    rolesUsuario.ToArray()
                    );

                if (resultadoRemocao.Succeeded)
                {
                    var funcoesSelecionadasPeloAdmin =
                        modelo
                        .Funcoes
                        .Where(funcao => funcao.Selecionado)
                        .Select(UsuarioFuncaoViewModel => UsuarioFuncaoViewModel.Nome)
                        .ToArray();

                    var resultadoAdicao = await UserManager.AddToRolesAsync(
                        usuario.Id,
                        funcoesSelecionadasPeloAdmin
                        );

                    if (resultadoAdicao.Succeeded)
                    {
                        return(RedirectToAction("Index"));
                    }
                }
            }
            return(View());
        }
        public async Task <IActionResult> EditarFuncoes(string id)
        {
            var usuario = await _userManager.FindByIdAsync(id);

            var modelo = new UsuarioEditarFuncoesViewModel(usuario, _roleManager, _userManager);

            return(View(modelo));
        }