예제 #1
0
        public static void AdicionarPagina(this IExecuteExpressionRoot execute, string campoReferencia,
                                           TipoDeExpressaoAdicionarPagina tipoDeExpressaoAdicionarPagina, string sqlNovaPagina,
                                           string caminhoNovaPagina)
        {
            string expressao;

            switch (tipoDeExpressaoAdicionarPagina)
            {
            case TipoDeExpressaoAdicionarPagina.PeloCaminhoDoPai:
                expressao = $"SELECT QT_Right FROM TB_Pagina WHERE TX_CaminhoRelativo LIKE '{campoReferencia}'";
                break;

            case TipoDeExpressaoAdicionarPagina.PeloNomeDoPai:
                expressao = $"SELECT QT_Right FROM TB_Pagina WHERE TX_Nome LIKE '{campoReferencia}'";
                break;

            case TipoDeExpressaoAdicionarPagina.PeloCaminhoDoIrmao:
                expressao = $"SELECT QT_Right + 1 FROM TB_Pagina WHERE TX_CaminhoRelativo LIKE '{campoReferencia}'";
                break;

            default:
                throw new Exception("Tipo de expressão não implementada.");
            }

            var script =
                BasicScriptsResources.AdicionarPaginaScript.Replace("#EXPRESSAO#", expressao)
                .Replace("#CAMINHO_NOVA_PAGINA#", caminhoNovaPagina);

            // Abrir espaço pra nova página.
            execute.Sql(script);

            // Incluir nova página.
            execute.Sql(sqlNovaPagina);
        }
예제 #2
0
        public static string GerarScriptInsercaoPagina(this IExecuteExpressionRoot execute, string nome, string titulo,
                                                       string caminhoRelativo, TipoDeExpressaoAdicionarPagina tipoDeExpressaoAdicionarPagina,
                                                       string campoReferencia,
                                                       string descricao = null)
        {
            var script = "INSERT INTO TB_Pagina (#COLUMN#) VALUES (#VALUES#)";

            AdicionarColuna("TX_Nome", nome, ref script);
            AdicionarColuna("TX_Titulo", titulo, ref script);
            AdicionarColuna("TX_CaminhoRelativo", caminhoRelativo, ref script);

            if (string.IsNullOrWhiteSpace(descricao) == false)
            {
                AdicionarColuna("TX_Descricao", descricao, ref script);
            }

            string expressaoLeft, expressaoRight;

            switch (tipoDeExpressaoAdicionarPagina)
            {
            case TipoDeExpressaoAdicionarPagina.PeloCaminhoDoPai:
                expressaoLeft =
                    $"SELECT TOP 1 QT_Right FROM TB_Pagina WHERE TX_CaminhoRelativo LIKE '{campoReferencia}'";
                expressaoRight =
                    $"SELECT TOP 1 QT_Right + 1 FROM TB_Pagina WHERE TX_CaminhoRelativo LIKE '{campoReferencia}'";
                break;

            case TipoDeExpressaoAdicionarPagina.PeloNomeDoPai:
                expressaoLeft  = $"SELECT TOP 1 QT_Right FROM TB_Pagina WHERE TX_Nome LIKE '{campoReferencia}'";
                expressaoRight = $"SELECT TOP 1 QT_Right + 1 FROM TB_Pagina WHERE TX_Nome LIKE '{campoReferencia}'";
                break;

            case TipoDeExpressaoAdicionarPagina.PeloCaminhoDoIrmao:
                expressaoLeft =
                    $"SELECT TOP 1 QT_Right + 1 FROM TB_Pagina WHERE TX_CaminhoRelativo LIKE '{campoReferencia}'";
                expressaoRight =
                    $"SELECT TOP 1 QT_Right + 2 FROM TB_Pagina WHERE TX_CaminhoRelativo LIKE '{campoReferencia}'";
                break;

            default:
                throw new Exception("Tipo de expressão não implementada.");
            }

            AdicionarLeftRight(expressaoLeft, expressaoRight, ref script);

            InserirDadosPadrao(ref script);

            return(script.Replace(",#COLUMN#", "").Replace(",#VALUES#", ""));
        }