예제 #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();
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Apaga uma Webpages_Methods
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public static void Delete(string token, Int32 id_method, painel_taxservices_dbContext _dbContext = null)
        {
            painel_taxservices_dbContext _db;

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

            try
            {
                GatewayWebpagesPermissions.DeleteMethod(token, id_method, _db);
                _db.webpages_Methods.RemoveRange(_db.webpages_Methods.Where(e => e.id_method.Equals(id_method)));
                _db.SaveChanges();
            }
            catch (Exception e)
            {
                if (e is DbEntityValidationException)
                {
                    string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e);
                    throw new Exception(erro.Equals("") ? "Falha ao apagar method" : 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();
                }
            }
        }