예제 #1
0
        public async Task <ActionResult> AdicionarRole(int?id)
        {
            if (id == null)
            {
                MensagemParaUsuarioViewModel.MensagemErro("Escolha um usuário para adicionar perfis", TempData, ModelState);
                return(RedirectToAction("index"));
            }

            try
            {
                Usuario usuario = await db.Usuarios.FindAsync(id);

                if (usuario == null)
                {
                    MensagemParaUsuarioViewModel.MensagemErro("O usuário não foi encontrado", TempData, ModelState);
                    return(RedirectToAction("index"));
                }

                UsuarioRoleViewModel urvm = new UsuarioRoleViewModel
                {
                    Usuario   = usuario,
                    IdUsuario = usuario.Id
                };
                CarregaPerfis(usuario);
                return(View(urvm));
            }
            catch (Exception err)
            {
                MensagemParaUsuarioViewModel.MensagemErro(err.Message, TempData, ModelState);
                return(RedirectToAction("index"));
            }
        }
예제 #2
0
        public async Task <ActionResult> AdicionarUsuario(int?id)
        {
            if (id == null)
            {
                MensagemParaUsuarioViewModel.MensagemErro("Escolha um perfil para adicionar usuários", TempData, ModelState);
                return(RedirectToAction("index"));
            }

            try
            {
                Perfil perfil = await db.Perfis.FindAsync(id);

                if (perfil == null)
                {
                    MensagemParaUsuarioViewModel.MensagemErro("O perfil não foi encontrado", TempData, ModelState);
                    return(RedirectToAction("index"));
                }

                UsuarioRoleViewModel urvm = new UsuarioRoleViewModel
                {
                    Perfil   = perfil,
                    IdPerfil = perfil.Id
                };
                CarregaUsuarios(perfil);
                return(View(urvm));
            }
            catch (Exception err)
            {
                MensagemParaUsuarioViewModel.MensagemErro(err.Message, TempData, ModelState);
                return(RedirectToAction("index"));
            }
        }
        public async Task <IActionResult> AssociarPermissao(UsuarioRoleViewModel usuarioRole)
        {
            if (ModelState.IsValid)
            {
                var usuario = await _dbContext.Usuarios.FindAsync(usuarioRole.UsuarioId);

                await _manager.AddToRoleAsync(usuario, usuarioRole.NomeRole);

                return(RedirectToAction("Index", "Home"));
            }

            return(View(usuarioRole));
        }
예제 #4
0
        public async Task <ActionResult> AdicionarUsuario(UsuarioRoleViewModel urvm)
        {
            if (urvm == null)
            {
                MensagemParaUsuarioViewModel.MensagemErro("O usuário e o perfil não podem ser nulos", TempData, ModelState);
                return(RedirectToAction("index"));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var usuario = db.Usuarios.Find(urvm.IdUsuario);
                    var perfil  = db.Perfis.Find(urvm.IdPerfil);

                    if (usuario == null)
                    {
                        MensagemParaUsuarioViewModel.MensagemErro("Usuário não encontrado", TempData, ModelState);
                        return(RedirectToAction("index"));
                    }

                    if (perfil == null)
                    {
                        MensagemParaUsuarioViewModel.MensagemErro("Perfil não encontrado", TempData, ModelState);
                        return(RedirectToAction("index"));
                    }

                    urvm.Usuario   = usuario;
                    urvm.Perfil    = perfil;
                    urvm.IdPerfil  = perfil.Id;
                    urvm.IdUsuario = usuario.Id;

                    bool jaPossui = perfil.Usuarios.Contains(usuario);
                    if (!jaPossui)
                    {
                        perfil.Usuarios.Add(usuario);
                    }

                    await db.SaveChangesAsync();

                    if (jaPossui)
                    {
                        MensagemParaUsuarioViewModel.MensagemInfo("Esse perfil já tinha esse usuário", TempData);
                    }
                    else
                    {
                        MensagemParaUsuarioViewModel.MensagemSucesso("Usuário Adicionado ao perfil", TempData);
                    }

                    CarregaUsuarios(perfil);

                    return(View(urvm));
                }
                catch (DbUpdateConcurrencyException duce)
                {
                    MensagemParaUsuarioViewModel.MensagemErro("Talvez esse registro tenha sido excluído por outra pessoa. " + duce.Message, TempData, ModelState);
                }
                catch (Exception err)
                {
                    MensagemParaUsuarioViewModel.MensagemErro("Esse registro não pôde ser salvo. " + err.Message, TempData, ModelState);
                }
            }

            return(View(urvm));
        }