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); }
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#", "")); }