Example #1
0
        /// <summary>
        /// Apaga uma Webpages_Roles
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public static void Delete(string token, Int32 RoleId, painel_taxservices_dbContext _dbContext = null)
        {
            painel_taxservices_dbContext _db;

            if (_dbContext == null)
            {
                _db = new painel_taxservices_dbContext();
            }
            else
            {
                _db = _dbContext;
            }

            try
            {
                webpages_Roles role = _db.webpages_Roles.Where(r => r.RoleId == RoleId).FirstOrDefault();

                if (role == null)
                {
                    throw new Exception("Role inexistente");               // não existe role com o Id informado
                }
                Int32 RoleLevelMin = Permissoes.GetRoleLevelMin(token, _db);
                //if (role.RoleName.ToUpper().Equals("COMERCIAL") || role.RoleLevel < RoleLevelMin) throw new Exception("401"); // não possui autorização para remover o privilégio
                if (Permissoes.isAtosRoleVendedor(role) || role.RoleLevel < RoleLevelMin)
                {
                    throw new Exception("401");                                                                       // não possui autorização para remover o privilégio
                }
                GatewayWebpagesPermissions.Delete(token, RoleId, _db);
                GatewayWebpagesUsersInRoles.Delete(token, RoleId, true, _db);
                _db.webpages_Roles.Remove(_db.webpages_Roles.Where(e => e.RoleId.Equals(RoleId)).First());
                _db.SaveChanges();
            }
            catch (Exception e)
            {
                if (e is DbEntityValidationException)
                {
                    string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e);
                    throw new Exception(erro.Equals("") ? "Falha ao apagar role" : erro);
                }
                throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message);
            }
            finally
            {
                if (_dbContext == null)
                {
                    // Fecha conexão
                    _db.Database.Connection.Close();
                    _db.Dispose();
                }
            }
        }
Example #2
0
        /// <summary>
        /// Altera webpages_Users
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public static void Update(string token, Models.Object.Usuario param, painel_taxservices_dbContext _dbContext = null)
        {
            painel_taxservices_dbContext _db;

            if (_dbContext == null)
            {
                _db = new painel_taxservices_dbContext();
            }
            else
            {
                _db = _dbContext;
            }

            try
            {
                if (param.Id_grupo != 0)
                {
                    // Altera grupo empresa do usuário logado
                    Int32          IdUser = Permissoes.GetIdUser(token);
                    webpages_Users value  = _db.webpages_Users
                                            .Where(e => e.id_users == IdUser)
                                            .FirstOrDefault <webpages_Users>();

                    if (value != null)
                    {
                        // VALIDAR PERMISSÂO PARA FUNCIONALIDADE

                        if (param.Id_grupo == -1)
                        {
                            value.id_grupo = null;
                        }
                        else
                        {
                            value.id_grupo = param.Id_grupo;
                        }

                        value.nu_cnpjEmpresa = null;
                        _db.SaveChanges();
                    }
                    else
                    {
                        throw new Exception("Usuário inválido!");
                    }
                }
                else
                {
                    if (param.Webpagesusers.id_users == 0)
                    {
                        throw new Exception("Falha ao parâmetro");
                    }

                    // Altera um usuário que não necessiariamente é o logado
                    webpages_Users value = _db.webpages_Users
                                           .Where(e => e.id_users == param.Webpagesusers.id_users)
                                           .First <webpages_Users>();

                    if (value != null)
                    {
                        if (param.Pessoa != null)
                        {
                            param.Pessoa.id_pesssoa = (int)value.id_pessoa;
                            GatewayPessoa.Update(token, param.Pessoa);
                        }

                        if (param.Webpagesusersinroles != null)
                        {
                            foreach (webpages_UsersInRoles item in param.Webpagesusersinroles)
                            {
                                if (item.UserId == -1)
                                {
                                    item.UserId = param.Webpagesusers.id_users;
                                    GatewayWebpagesUsersInRoles.Delete(token, item);
                                }
                                else
                                {
                                    item.UserId = param.Webpagesusers.id_users;
                                    webpages_UsersInRoles verificacao = _db.webpages_UsersInRoles.Where(p => p.UserId == item.UserId).Where(p => p.RoleId == item.RoleId).FirstOrDefault();
                                    if (verificacao != null)
                                    {
                                        webpages_UsersInRoles principal = _db.webpages_UsersInRoles
                                                                          .Where(p => p.UserId == item.UserId)
                                                                          .Where(p => p.RolePrincipal == true).FirstOrDefault();
                                        if (principal != null)
                                        {
                                            principal.RolePrincipal = false;
                                        }

                                        verificacao.RolePrincipal = item.RolePrincipal;
                                        _db.SaveChanges();
                                    }
                                    else
                                    {
                                        GatewayWebpagesUsersInRoles.Add(token, item);
                                    }
                                }
                            }
                        }
                        // Associa grupos empresas ao vendedor
                        if (param.Addidsgrupoempresavendedor != null)
                        {
                            foreach (var idGrupo in param.Addidsgrupoempresavendedor)
                            {
                                grupo_empresa grupo = _db.grupo_empresa.Where(g => g.id_grupo == idGrupo).FirstOrDefault();

                                if (grupo != null)
                                {
                                    grupo.id_vendedor = param.Webpagesusers.id_users;
                                    _db.SaveChanges();
                                }
                            }
                        }
                        // Desassocia grupos empresas
                        if (param.Removeidsgrupoempresavendedor != null)
                        {
                            foreach (var idGrupo in param.Removeidsgrupoempresavendedor)
                            {
                                grupo_empresa grupo = _db.grupo_empresa.Where(g => g.id_grupo == idGrupo).FirstOrDefault();

                                if (grupo != null)
                                {
                                    grupo.id_vendedor = null;
                                    _db.SaveChanges();
                                }
                            }
                        }


                        if (param.Webpagesusers.ds_login != null && param.Webpagesusers.ds_login != value.ds_login)
                        {
                            webpages_Users old = _db.webpages_Users.Where(e => e.ds_login.ToLower().Equals(param.Webpagesusers.ds_login.ToLower()))
                                                 .FirstOrDefault();
                            if (old == null || old.id_users == value.id_users)
                            {
                                value.ds_login = param.Webpagesusers.ds_login;
                            }
                        }
                        if (param.Webpagesusers.ds_email != null && param.Webpagesusers.ds_email != value.ds_email)
                        {
                            webpages_Users old = _db.webpages_Users.Where(e => e.ds_email.ToLower().Equals(param.Webpagesusers.ds_email.ToLower()))
                                                 .FirstOrDefault();
                            if (old == null || old.id_users == value.id_users)
                            {
                                value.ds_email = param.Webpagesusers.ds_email;
                            }
                        }
                        if (param.Webpagesusers.fl_ativo != value.fl_ativo)
                        {
                            value.fl_ativo = param.Webpagesusers.fl_ativo;
                        }

                        Boolean grupoEmpresaAlterado = false;
                        if (param.Webpagesusers.nu_cnpjEmpresa != null && param.Webpagesusers.nu_cnpjEmpresa != value.nu_cnpjEmpresa)
                        {
                            if (param.Webpagesusers.nu_cnpjEmpresa == "")
                            {
                                value.nu_cnpjEmpresa = null;
                            }
                            else
                            {
                                value.nu_cnpjEmpresa = param.Webpagesusers.nu_cnpjEmpresa;
                                value.id_grupo       = _db.empresas.Where(f => f.nu_cnpj.Equals(param.Webpagesusers.nu_cnpjEmpresa)).Select(f => f.id_grupo).FirstOrDefault();
                                grupoEmpresaAlterado = true; // já forçou o grupo pela filial
                            }
                        }// só pode colocar grupo empresa ao qual a filial está ou sem nenhuma filial

                        if (!grupoEmpresaAlterado && param.Webpagesusers.id_grupo != null && param.Webpagesusers.id_grupo != 0 && param.Webpagesusers.id_grupo != value.id_grupo)
                        {
                            if (param.Webpagesusers.id_grupo == -1)
                            {
                                value.id_grupo       = null;
                                value.nu_cnpjEmpresa = null; // Não pode estar associado a uma filial sem estar associado a um grupo
                            }
                            else
                            {
                                value.id_grupo = param.Webpagesusers.id_grupo;
                                // Avalia se tem empresa associado => A filial TEM QUE SER associada ao grupo
                                if (value.nu_cnpjEmpresa != null)
                                {
                                    Int32 id_grupo = _db.empresas.Where(f => f.nu_cnpj.Equals(value.nu_cnpjEmpresa)).Select(f => f.id_grupo).FirstOrDefault();
                                    if (id_grupo != value.id_grupo)
                                    {
                                        value.nu_cnpjEmpresa = null; // filial que estava associado é de um grupo diferente do grupo recém associado
                                    }
                                }
                            }
                        }

                        _db.SaveChanges();
                    }
                    else
                    {
                        throw new Exception("Usuário não cadastrado");
                    }
                }
            }
            catch (Exception e)
            {
                if (e is DbEntityValidationException)
                {
                    string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e);
                    throw new Exception(erro.Equals("") ? "Falha ao alterar usuário" : erro);
                }
                throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message);
            }
            finally
            {
                if (_dbContext == null)
                {
                    // Fecha conexão
                    _db.Database.Connection.Close();
                    _db.Dispose();
                }
            }
        }
Example #3
0
        /// <summary>
        /// Apaga uma Webpages_Users
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        //public static void Delete(string token, Int32 id_users)
        //{
        //    _db.webpages_Users.Remove(_db.webpages_Users.Where(e => e.id_users.Equals(id_users)).First());
        //    _db.SaveChanges();
        //}

        public static void Delete(string token, Int32 id_users, painel_taxservices_dbContext _dbContext = null)
        {
            painel_taxservices_dbContext _db;

            if (_dbContext == null)
            {
                _db = new painel_taxservices_dbContext();
            }
            else
            {
                _db = _dbContext;
            }

            DbContextTransaction transaction = _db.Database.BeginTransaction();

            try
            {
                if (_db.LogAcesso1.Where(e => e.idUsers == id_users).ToList().Count == 0)
                {
                    GatewayWebpagesUsersInRoles.Delete(token, id_users, false, _db);
                    GatewayWebpagesMembership.Delete(token, id_users, _db);
                    // Obtem o usuário com o id_users
                    webpages_Users value = _db.webpages_Users
                                           .Where(e => e.id_users.Equals(id_users))
                                           .First <webpages_Users>();

                    int id_pessoa = (value.id_pessoa != null) ? Convert.ToInt32(value.id_pessoa) : 0;

                    _db.webpages_Users.RemoveRange(_db.webpages_Users.Where(e => e.id_users == id_users));
                    _db.SaveChanges();

                    if (id_pessoa > 0)
                    {
                        GatewayPessoa.Delete(token, id_pessoa, _db);
                    }
                }
                else
                {
                    throw new Exception("Usuário não pode ser deletado!");
                }
            }
            catch (Exception e)
            {
                transaction.Rollback();
                if (e is DbEntityValidationException)
                {
                    string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e);
                    throw new Exception(erro.Equals("") ? "Falha ao apagar usuário" : erro);
                }
                throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message);
            }
            finally
            {
                if (_dbContext == null)
                {
                    // Fecha conexão
                    _db.Database.Connection.Close();
                    _db.Dispose();
                }
            }
        }