private void GeraClasseRepositorioBase(GeraRepositorio geraRepositorio, string repositorio, string namesRopositorio)
 {
     _geraEntidades.CriaDiretorio(_caminho + repositorio);
     _geraEntidades.IncluirArquivoNoProjeto(_caminhoDoArquivoProj, repositorio + "RepositorioBase.cs",
                                            "Compile");
     _geraEntidades.EscreveNoArquivo(_caminho + repositorio + "RepositorioBase.cs", geraRepositorio.GeraClasseRepositorioBase(namesRopositorio));
 }
        private void GeraOsArquivos()
        {
            ITabelasECampos tabelasECampos = TabelasECamposFactory.GetTabelasECampos(_tipoDeBanco);

            const string entidades = @"Entidades\";
            var namesPaceEntidades = _namesPace + ".Entidades";

            const string interfaces = @"Interfaces\";
            var namesPaceInterfaces = _namesPace + ".Interfaces";

            const string repositorio = @"Repositorios\";
            var namesRopositorio = _namesPace + ".Repositorios";

            const string mapeamato = @"Mapeamentos\";

            //para recuper os valores de tela tem usandar o metódo begininvoke
            //caso contrario da erro por ser um thread

            Dispatcher.BeginInvoke((UpdateUi)delegate
                                                {
                                                    pgbPrincipal.Maximum = _listacomastabelas.Count();
                                                }, null);

            var geraMapeamentos = new GeraMapeamentos(_tipoDeBanco);
            geraMapeamentos.Lazy = _lazy;
            geraMapeamentos.RetiraS = _geraEntidades.RetiraS;
            geraMapeamentos.NameSpace = _namesPace;

            var geraRepositorio = new GeraRepositorio();
            geraRepositorio.GeraInterace = _geraEntidades.GeraInterface;
            geraRepositorio.RetiraS = _geraEntidades.RetiraS;

            foreach (var tabela in _listacomastabelas)
            {

                var campos = tabelasECampos.CamposDaTabela(tabela);

                if (_geraEntidades.GeraInterface)
                {
                    GeraInterface(tabela, interfaces, campos, namesPaceInterfaces);
                }

                if (_geraEntidades.GeraClasse)
                {
                    GeraClasse(tabela, campos, entidades, namesPaceEntidades);
                    GeraXmlDeMapeamento(geraMapeamentos, tabela, mapeamato);
                }

                if (_geraEntidades.GeraRepositorio)
                {
                    GeracaoRepositorio(geraRepositorio, tabela, repositorio, namesRopositorio);
                }

                Dispatcher.BeginInvoke((UpdateUi)delegate
                                                    {
                                                        pgbPrincipal.Value += 1;
                                                    }, null);
            }

            GeraArquivoXmlDeConfiguracaoNHibernate(namesPaceEntidades);

            if (_geraEntidades.GeraRepositorio)
            {
                GeraClasseRepositorioBase(geraRepositorio, repositorio, namesRopositorio);
            }

            Dispatcher.BeginInvoke((UpdateUi)delegate
                                                {
                                                    pgbPrincipal.Value = 0;
                                                }, null);

            MessageBox.Show("Processo concluído com sucesso!", "Atenção!", MessageBoxButton.OK, MessageBoxImage.Information);
        }
 private void GeracaoRepositorio(GeraRepositorio geraRepositorio, string tabela, string repositorio, string namesRopositorio)
 {
     _geraEntidades.CriaDiretorio(_caminho + repositorio);
     _geraEntidades.IncluirArquivoNoProjeto(_caminhoDoArquivoProj, repositorio + "Repositorio" + _trataNome.ConverteParaMaisculo(tabela, _geraEntidades.RetiraS) + ".cs",
                                            "Compile");
     _geraEntidades.EscreveNoArquivo(
         _caminho + repositorio + "Repositorio" + _trataNome.ConverteParaMaisculo(tabela, _geraEntidades.RetiraS) + ".cs",
         geraRepositorio.GeraClasseRepositorio(tabela, namesRopositorio));
 }