public JsonResult alterarEstadoUser(int userid, string acao)
        {
            User user = new UsersRepository().getId(userid);

            EditarUsers lEditarUsers = new EditarUsers();

            if (acao == "ATIVAR")
            {
                user.ativo = 1;
                lEditarUsers.editar(user);
            }
            else
            {
                user.ativo = 0;
                lEditarUsers.editar(user);
            }

            return(Json(user));
        }
Exemple #2
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            try
            {
                ApplicationUser user   = null;
                IdentityResult  result = null;
                if (ModelState.IsValid)
                {
                    model.CPF = model.CPF.removerCaracteresEspeciais();
                    bool            cadastroSlave    = User.Identity.IsAuthenticated;
                    User            lUsuarioMaster   = null;
                    UsersRepository lUsersRepository = new UsersRepository();

                    if (cadastroSlave)
                    {
                        lUsuarioMaster = lUsersRepository.GetUserId(User.Identity.GetUserId());
                    }

                    using (TransactionScope _scope = new TransactionScope(TransactionScopeOption.Required, TransactionScopeAsyncFlowOption.Enabled))
                    {
                        User lUsuarioInativo = lUsersRepository.getMembershipEmail(model.Email);

                        if (lUsuarioInativo != null)
                        {
                            if (lUsuarioInativo.cpfDiferente(model.CPF))
                            {
                                AddError("Login já existente, porém CPF divergente");
                                return(View(model));
                            }

                            if (lUsersRepository.getCPF(model.CPF) != null)
                            {
                                AddError("CPF ativo já cadastrado.");
                                return(View(model));
                            }

                            lUsuarioInativo.ativo = 1;

                            if (cadastroSlave)
                            {
                                lUsuarioInativo.usermasterid = lUsuarioMaster.userid;
                            }

                            EditarUsers lEditarUsers = new EditarUsers();
                            if (!lEditarUsers.editar(lUsuarioInativo))
                            {
                                AddError("Não foi possível ativar o usuário");
                            }

                            var token = UserManager.GeneratePasswordResetToken(lUsuarioInativo.membershipid);
                            result = UserManager.ResetPassword(lUsuarioInativo.membershipid, token, model.Password);

                            if (!cadastroSlave)
                            {
                                user = UserManager.FindByEmail(model.Email);
                            }
                        }
                        else
                        {
                            try
                            {
                                try
                                {
                                    user = new ApplicationUser {
                                        UserName = model.Email, Email = model.Email
                                    };
                                }
                                catch (Exception e)
                                {
                                    ModelState.AddModelError("Erro", "Achei o erro => criando novo user (instancia)");
                                    return(View(model));
                                }

                                try
                                {
                                    result = UserManager.Create(user, model.Password);

                                    if (!result.Succeeded)
                                    {
                                        foreach (var item in result.Errors)
                                        {
                                            ModelState.AddModelError("erro $item", item);
                                        }
                                        return(View(model));
                                    }
                                }
                                catch (Exception e)
                                {
                                    ModelState.AddModelError("Erro", "Achei o erro => incluindo novo user");
                                    return(View(model));
                                }

                                try
                                {
                                    result = UserManager.AddToRole(user.Id, "default".ToUpper());

                                    if (!result.Succeeded)
                                    {
                                        foreach (var item in result.Errors)
                                        {
                                            ModelState.AddModelError("erro $item", item);
                                        }
                                        return(View(model));
                                    }
                                }
                                catch (Exception e)
                                {
                                    ModelState.AddModelError("Erro", "Achei o erro => adicionando a role");
                                    return(View(model));
                                }
                            }
                            catch (Exception e)
                            {
                                ModelState.AddModelError("Erro", "Achei o erro => inclusao no identity");
                                return(View(model));
                            }


                            if (result.Succeeded)
                            {
                                User lUser = new User()
                                {
                                    membershipid   = user.Id,
                                    cpf            = model.CPF,
                                    email          = model.Email,
                                    datanascimento = model.DataNascimento,
                                    nome           = model.Nome,
                                    telefone       = model.Telefone,
                                    ativo          = 1,
                                    usermasterid   = cadastroSlave ? (int?)lUsuarioMaster.userid : null
                                };

                                IncluirUsers lIncluirUsers = new IncluirUsers();
                                if (!lIncluirUsers.incluir(lUser))
                                {
                                    foreach (var item in lIncluirUsers.Messages)
                                    {
                                        AddError(item.ToString());
                                    }
                                    _scope.Dispose();
                                    return(View(model));
                                }
                            }
                        }
                        if (ModelState.IsValid)
                        {
                            if (cadastroSlave)
                            {
                                _scope.Complete(); return(RedirectToAction("Index", "Manage"));
                            }
                            else
                            {
                                SignInManager.SignIn(user, isPersistent: false, rememberBrowser: false);
                                _scope.Complete();
                                return(RedirectToAction("Index", "Home"));
                            }
                        }
                        else
                        {
                            _scope.Dispose();
                            return(View(model));
                        }
                    }
                }
            }
            catch (Exception e)
            {
                ModelState.AddModelError("Exception occurred", e.Message);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }