Beispiel #1
0
        public void SeSincronizarValoresDePropriedadesEnumOValorDoGetHashCodeQueDeveSerSincronizado()
        {
            var comando    = new SqlCommand();
            var dicionario = new Dicionario(typeof(NetoDoObjetoDeTestes));

            CommandBuilder.DefinirParametrosParaTodosOsCampos(dicionario, comando);

            var objeto = new NetoDoObjetoDeTestes()
            {
                CodigoFilho = 123,
                NomeNeto    = "ABC",
                Opcao       = EnumDeTestes.Opcao3
            };

            CommandBuilder.SincronizarParametrosDeTodosOsCampos(dicionario, comando, objeto);

            comando.Parameters["@p3"].Value
            .Should()
            .Be(3);
        }
Beispiel #2
0
        public void SeSincronizarValoresDePropriedadesEnumSemDefaultValueOEnumQueDeveSerSincronizado()
        {
            var comando    = new SqlCommand();
            var dicionario = new Dicionario(typeof(NetoDoObjetoDeTestes));

            CommandBuilder.DefinirParametrosParaTodosOsCampos(dicionario, comando);

            var objeto = new NetoDoObjetoDeTestes()
            {
                CodigoFilho = 123,
                NomeNeto    = "ABC",
                Letra       = EnumDeStrings.SemOpcao
            };

            CommandBuilder.SincronizarParametrosDeTodosOsCampos(dicionario, comando, objeto);

            comando.Parameters["@p4"].Value
            .Should()
            .Be("SemOpcao");
        }
        public void SeConsultarScalarTipadoDaQuantidadeDeRegistrosDeveRetornarNumeroValido()
        {
            var comando    = CriarComando();
            var dicionario = new Dicionario(typeof(ObjetoDeTestes));

            var config = new ConfiguradorQuery <ObjetoDeTestes>(comando.CriarComando(), dicionario, new QueryBuilder());

            config.DefinirTabela();
            config.AdicionarResultadoAgregado(Agregadores.Count);

            var scalar = comando.Scalar(config);

            scalar
            .Should()
            .BeOfType <int>();

            ((int)scalar)
            .Should()
            .BeGreaterThan(0);
        }
        public void SeConsultarOsCamposChavesMapeadosDeveRetornarOsCamposEsperados()
        {
            var dicionarioDupla = new Dicionario(typeof(ObjetoMapeadoComChaveDupla));

            dicionarioDupla.QuantidadeCamposNaChave
            .Should().Be(2);

            var campos = dicionarioDupla.ConsultarCamposChave().GetEnumerator();

            campos.MoveNext().Should().BeTrue();
            campos.Current.Should().NotBeNull();
            campos.Current.Alias.Should().Be("MapeadoComChaveBase");
            campos.Current.Nome.Should().Be("ChaveBase");

            campos.MoveNext().Should().BeTrue();
            campos.Current.Should().NotBeNull();
            campos.Current.Alias.Should().Be("MapeadoComChaveAutoIncremento");
            campos.Current.Nome.Should().Be("ChaveAutoIncremento");

            campos.MoveNext().Should().BeFalse();
        }
Beispiel #5
0
        public void SeGerarScriptDezMilhoesDeVezesDeveGerarUmScriptValido()
        {
            var builder    = new QueryBuilder();
            var dicionario = new Dicionario(typeof(ObjetoDeTestes));

            builder.DefinirTabela(dicionario.Nome);

            var consulta =
                "select " +
                "[Codigo],[CodigoNulo],[Nome],[Duplo],[DuploNulo]," +
                "[Decimal],[DecimalNulo],[Logico],[DataHora],[DataHoraNulo] " +
                "from[ObjetoVirtual]";

            for (int i = 0; i < 10_000_000; i++)
            {
                if (!string.Equals(builder.GerarScript(dicionario), consulta))
                {
                    throw new Exception("Script gerado errado!");
                }
            }
        }
Beispiel #6
0
        private void VerificarAnagramas(string prefixo, string palavra)
        {
            if (palavra.Length <= 1)
            {
                var palavraFinal = prefixo.ToUpper() + palavra.ToUpper();

                if (Dicionario.Contains(palavraFinal) && !PalavrasEncontradas.Contains(palavraFinal))
                {
                    PalavrasEncontradas.Add(palavraFinal);
                }
            }
            else
            {
                for (int i = 0; i < palavra.Length; i++)
                {
                    var cursor = palavra.Substring(i, 1);
                    var antes  = palavra.Substring(0, i);
                    var depois = palavra.Substring(i + 1);
                    VerificarAnagramas(prefixo + cursor, antes + depois);
                }
            }
        }
        public void SeSincronizarValoresDePropriedadesEnumOValorDoDefaultValueQueDeveSerSincronizado()
        {
            var comando    = new SqlCommand();
            var dicionario = new Dicionario(typeof(NetoDoObjetoDeTestes));

            CommandBuilder.DefinirParametrosParaTodosOsCampos(dicionario, comando);

            var objeto = new NetoDoObjetoDeTestes()
            {
                CodigoFilho = 123,
                NomeNeto    = "ABC",
                Letra       = EnumDeStrings.OpcaoC
            };

            CommandBuilder.SincronizarParametrosDeTodosOsCampos(dicionario, comando, objeto);

            var campoNome = dicionario.ConsultarPorPropriedade("Letra");

            comando.Parameters["@p" + campoNome.Id.ToString()].Value
            .Should()
            .Be("C");
        }
        public void SeCriarScriptConsultaRelacionamentoAscendenteDeveGerarUmScriptSqlCorretamente()
        {
            var queryBuilder = new QueryBuilder();

            var dicionarioFilhos = new Dicionario(typeof(FilhoDoObjetoDeTestes));

            queryBuilder.DefinirTabela(dicionarioFilhos.Nome);
            queryBuilder.AdicionarCondicao("CodigoFilho", (int)Operadores.Igual, 1);
            var scriptQueConsultaFilhoQueTeraPaiCarregado = queryBuilder.GerarScript(dicionarioFilhos);
            var chaveEstrangeira = DataAnnotationHelper.ConsultarForeignKey(dicionarioFilhos.ConsultarPorCampo("Pai").Propriedade);

            var dicionarioPai            = new Dicionario(typeof(ObjetoDeTestes));
            var relacionamentoAscendente = new Relacionamento(TiposRelacionamento.Ascendente, dicionarioPai, chaveEstrangeira);

            var relacionamentoBuilder = new RelacionamentoBuilder();

            relacionamentoBuilder.CriarScriptConsultaRelacionamentoAscendente(relacionamentoAscendente, scriptQueConsultaFilhoQueTeraPaiCarregado)
            .Should()
            .Be("select" +
                "[Codigo],[CodigoNulo],[Nome],[Duplo],[DuploNulo],[Decimal]," +
                "[DecimalNulo],[Logico],[DataHora],[DataHoraNulo]" +
                "from(" +
                "select" +
                "[Codigo],[CodigoNulo],[Nome],[Duplo],[DuploNulo],[Decimal],[DecimalNulo]," +
                "[Logico],[DataHora],[DataHoraNulo]" +
                "from[ObjetoVirtual]" +
                ")[t]" +
                "where(exists(" +
                "select top 1 1 " +
                "from(" +
                "select " +
                "[CodigoFilho]as[Id],[NomeFilho]as[Nome],[CodigoPai]as[IdPai] " +
                "from[ObjetoVirtualFilho]" +
                "where([CodigoFilho]=@_p0) " +
                ")[d]" +
                "where(t.[Codigo]=d.[IdPai])))" +
                "order by t.[Codigo]");
        }
Beispiel #9
0
        public void SeSincronizarParametrosDeTodosOsCamposDeveDefinirValoresCorretamente()
        {
            var comando    = new SqlCommand();
            var dicionario = new Dicionario(typeof(ObjetoComChaveDupla));

            CommandBuilder.DefinirParametrosParaTodosOsCampos(dicionario, comando);

            var objeto = new ObjetoComChaveDupla()
            {
                ChaveBase = 123,
                Nome      = "ABC"
            };

            CommandBuilder.SincronizarParametrosDeTodosOsCampos(dicionario, comando, objeto);

            comando.Parameters["@p0"].Value
            .Should()
            .Be(123);

            comando.Parameters["@p2"].Value
            .Should()
            .Be("ABC");
        }
Beispiel #10
0
        public void SeDefinirParametrosParaTodosOsCamposDaChaveApenasCamposChaveDevemSerDefinidos()
        {
            var comando    = new SqlCommand();
            var dicionario = new Dicionario(typeof(ObjetoDeTestes));

            CommandBuilder.DefinirParametrosParaTodosOsCamposDaChave(dicionario, comando);

            comando.Parameters.Count
            .Should()
            .Be(dicionario.QuantidadeCamposNaChave);

            foreach (var itemDicionario in dicionario.ConsultarCamposChave())
            {
                var parametro = comando.Parameters["@p" + itemDicionario.Id.ToString()];

                parametro
                .Should()
                .NotBeNull();

                parametro.DbType
                .Should()
                .Be(itemDicionario.TipoBanco);
            }
        }
        public void SeConsultarRegistrosTipadosNoBancoDeveGerarDataReaderComEstruturaCorreta()
        {
            var comando    = CriarComando();
            var dicionario = new Dicionario(typeof(ObjetoDeTestes));

            var config = new ConfiguradorQuery <ObjetoDeTestes>(comando.CriarComando(), dicionario, new QueryBuilder());

            config.DefinirTabela();
            config.DefinirLimite(0);

            var registros = comando.ConsultarRegistro(config);

            registros
            .Should()
            .NotBeNull();

            registros.FieldCount
            .Should()
            .Be(dicionario.QuantidadeCampos);

            registros.Read()
            .Should()
            .BeFalse();
        }
Beispiel #12
0
        public void SeCriarDataTableDeveGerarUmDataTableComEstruturaEsperada()
        {
            var dicionario = new Dicionario(typeof(ObjetoDeTestes));
            var tabela     = DataTableBuilder.CriarDataTable(dicionario);

            tabela
            .Should()
            .NotBeNull();

            tabela.Columns
            .Should()
            .HaveCount(10, "devem existir 10 colunas!");

            ValidarColuna(tabela.Columns[0], nome: "Codigo", tipo: typeof(int), permiteNulo: false);
            ValidarColuna(tabela.Columns[1], nome: "CodigoNulo", tipo: typeof(int), permiteNulo: true);
            ValidarColuna(tabela.Columns[2], nome: "Nome", tipo: typeof(string), permiteNulo: false, tamanhoMaximo: 50);
            ValidarColuna(tabela.Columns[3], nome: "Duplo", tipo: typeof(double), permiteNulo: false);
            ValidarColuna(tabela.Columns[4], nome: "DuploNulo", tipo: typeof(double), permiteNulo: true);
            ValidarColuna(tabela.Columns[5], nome: "Decimal", tipo: typeof(decimal), permiteNulo: false);
            ValidarColuna(tabela.Columns[6], nome: "DecimalNulo", tipo: typeof(decimal), permiteNulo: true);
            ValidarColuna(tabela.Columns[7], nome: "Logico", tipo: typeof(bool), permiteNulo: false);
            ValidarColuna(tabela.Columns[8], nome: "DataHora", tipo: typeof(DateTime), permiteNulo: false);
            ValidarColuna(tabela.Columns[9], nome: "DataHoraNulo", tipo: typeof(DateTime), permiteNulo: true);
        }
Beispiel #13
0
        public async Task <IActionResult> UploadFile(IFormFile file)
        {
            try
            {
                var sr = new StreamReader(file.OpenReadStream());

                var dt = Util.ConvertCSVtoDataTable(sr);

                if (dt == null)
                {
                    TempData["Error"] = "Arquivo em branco";
                }
                else
                {
                    if (Util.validaColunas(Dicionario.RetornaColunasClientes(), dt.Columns))
                    {
                        var clientes = PopulaListaClientes(dt);

                        var mensagem = ValidaInformacoes(clientes);

                        if (Util.validaCampo(mensagem))
                        {
                            TempData["Error"] = mensagem;
                        }
                        else
                        {
                            foreach (var cliente in clientes)
                            {
                                try
                                {
                                    var result = await CadastrarCliente(cliente);

                                    if (!result.Succeeded)
                                    {
                                        TempData["Error"] = result.Errors;

                                        break;
                                    }
                                }
                                catch (Exception ex)
                                {
                                    var user = await _userManager.FindByEmailAsync(cliente.Email);

                                    if (user != null)
                                    {
                                        await _userManager.DeleteAsync(user);
                                    }

                                    throw ex;
                                }
                            }
                        }
                    }
                    else
                    {
                        TempData["Error"] = "As colunas do arquivo estão inválidas";
                    }
                }
            }
            catch
            {
                TempData["Error"] = "Algum erro desconhecido ocorreu, tente novamente";
            }

            return(RedirectToAction(nameof(Index)));
        }
Beispiel #14
0
 public int SaveData(Dicionario dicionario)
 {
     return(dbConn.Insert(dicionario));
 }
Beispiel #15
0
 public int DeleteData(Dicionario dicionario)
 {
     return(dbConn.Delete(dicionario));
 }
Beispiel #16
0
 public int UpdateData(Dicionario dicionario)
 {
     return(dbConn.Update(dicionario));
 }
Beispiel #17
0
        private DataTable CriarTabelaDoObjetoDeTestes()
        {
            var dicionario = new Dicionario(typeof(ObjetoDeTestes));

            return(DataTableBuilder.CriarDataTable(dicionario));
        }
Beispiel #18
0
        public void SeConverterItemEmDataRowDeveGerarUmDataRowEsperado()
        {
            var dicionario = new Dicionario(typeof(ObjetoDeTestes));
            var tabela     = DataTableBuilder.CriarDataTable(dicionario);
            var agora      = DateTime.Now;

            var objeto = new ObjetoDeTestes()
            {
                Codigo       = 1,
                CodigoNulo   = 2,
                Nome         = "ABC",
                Duplo        = 123.56,
                DuploNulo    = 123.5,
                Decimal      = 234.67M,
                DecimalNulo  = 234.6M,
                Logico       = true,
                DataHora     = agora,
                DataHoraNulo = agora.AddDays(1)
            };

            var registro = DataTableBuilder.ConverterItemEmDataRow(tabela, objeto);

            registro.RowState
            .Should()
            .Be(DataRowState.Detached);

            registro["Codigo"]
            .Should()
            .Be(1);

            registro["CodigoNulo"]
            .Should()
            .Be(2);

            registro["Nome"]
            .Should()
            .Be("ABC");

            registro["Duplo"]
            .Should()
            .Be(123.56);

            registro["DuploNulo"]
            .Should()
            .Be(123.5);

            registro["Decimal"]
            .Should()
            .Be(234.67M);

            registro["DecimalNulo"]
            .Should()
            .Be(234.6M);

            registro["Logico"]
            .Should()
            .Be(true);

            registro["DataHora"]
            .Should()
            .Be(agora);

            registro["DataHoraNulo"]
            .Should()
            .Be(agora.AddDays(1));
        }
Beispiel #19
0
 public ConfiguradorProcedure(IDbCommand comando, Dicionario dicionario)
     : base(comando, dicionario)
 {
 }
Beispiel #20
0
 public PersistenciaFake(Dicionario dicionario)
     : base(dicionario)
 {
 }
Beispiel #21
0
 public BuscadorLoader(IComando comando, Dicionario dicionario, IRelacionamentoBuilder relacionamentoBuilder)
 {
     _comando               = comando;
     _dicionario            = dicionario;
     _relacionamentoBuilder = relacionamentoBuilder;
 }
Beispiel #22
0
 public static Script Consultar(Dicionario dicionario)
 {
     return(Scripts.GetOrAdd(dicionario, CriarScriptParaObjeto));
 }
Beispiel #23
0
 public string GerarScriptExistencia(Dicionario dicionario)
 {
     return(_script);
 }
Beispiel #24
0
 public string GerarScript(Dicionario dicionario)
 {
     return(_script);
 }
Beispiel #25
0
 public ValidadorDicionario(Dicionario dicionario, IList <IValidadorEntidadeAttribute> validacoes)
 {
     _validacoes = validacoes;
     Dicionario  = dicionario;
     Quantidade  = _validacoes.Count;
 }
Beispiel #26
0
        private static Adapter <ObjetoDeTestes> CriarAdapterDoObjetoDeTestes()
        {
            var dicionario = new Dicionario(typeof(ObjetoDeTestes));

            return(new Adapter <ObjetoDeTestes>(dicionario));
        }
Beispiel #27
0
 public Adapter(Dicionario dicionario)
 {
     _dicionario = dicionario;
 }
Beispiel #28
0
 public Relacionamento(TiposRelacionamento tipo, Dicionario dicionario, string chaveEstrangeira)
 {
     _tipo             = tipo;
     _dicionario       = dicionario;
     _chaveEstrangeira = chaveEstrangeira.Split(',');
 }
Beispiel #29
0
 public ConfiguradorQuery(IDbCommand comando, Dicionario dicionario, IQueryBuilder queryBuilder)
     : base(comando, dicionario)
 {
     _dicionario   = dicionario;
     _queryBuilder = queryBuilder;
 }
 protected PersistenciaBase(Dicionario dicionario)
 {
     _dicionario = dicionario;
 }