コード例 #1
0
ファイル: Setup.cs プロジェクト: kaiocn1/dn32.infra
        private static void AddRepository(Tuple <Type, Type> repository)
        {
            if (Repositorios.ContainsKey(repository.Item1))
            {
                throw new DesenvolvimentoIncorretoException($"There are two entity repository with the same Nome {repository.Item1} - {repository.Item2}. This is not allowed.");
            }

            Repositorios.Add(repository.Item1, repository.Item2);
        }
コード例 #2
0
        private void CriarNovoRepositorio <TObjeto>(string tipo) where TObjeto : class, IEntidade
        {
            var tipoRepositorio = typeof(Repositorio <>);
            var tipoGenerico    = tipoRepositorio.MakeGenericType(typeof(TObjeto));
            var dicionario      = DicionarioCache.Consultar(typeof(TObjeto));
            var persistencia    = new Persistencia <TObjeto>(dicionario);

            Repositorios.Add(tipo, (IRepositorio)Activator.CreateInstance(tipoGenerico, this, persistencia));
        }
コード例 #3
0
        private void CriarNovoRepositorio(string nome, Type tipo)
        {
            var tipoRepositorio      = typeof(Repositorio <>);
            var repositorioGenerico  = tipoRepositorio.MakeGenericType(tipo);
            var tipoPersistencia     = typeof(Persistencia <>);
            var persistenciaGenerica = tipoPersistencia.MakeGenericType(tipo);
            var dicionario           = DicionarioCache.Consultar(tipo);
            var persistencia         = Activator.CreateInstance(persistenciaGenerica, dicionario);
            var repositorio          = Activator.CreateInstance(repositorioGenerico, this, persistencia);

            Repositorios.Add(nome, repositorio);
        }
コード例 #4
0
        private void CriarNovoRepositorio(Type tipo)
        {
            var tipoRepositorio      = typeof(RepositorioFake <>);
            var repositorioGenerico  = tipoRepositorio.MakeGenericType(tipo);
            var tipoPersistencia     = typeof(PersistenciaFake <>);
            var persistenciaGenerica = tipoPersistencia.MakeGenericType(tipo);
            var dicionario           = DicionarioCache.Consultar(tipo);
            var tabela       = ConsultarTabelaDoBancoDeDadosVirtual(tipo);
            var persistencia = Activator.CreateInstance(persistenciaGenerica, dicionario);
            var repositorio  = Activator.CreateInstance(repositorioGenerico, this, persistencia, tabela);

            Repositorios.Add(tipo, repositorio);
        }
コード例 #5
0
        private void CriarNovoRepositorio(string nome, Type tipo)
        {
            var tipoRepositorio      = typeof(RepositorioFake <>);
            var repositorioGenerico  = tipoRepositorio.MakeGenericType(tipo);
            var tipoPersistencia     = typeof(PersistenciaFake <>);
            var persistenciaGenerica = tipoPersistencia.MakeGenericType(tipo);
            var dicionario           = DicionarioCache.Consultar(tipo);
            var tabela = BancoDeDadosVirtual.Tables[tipo.Name]
                         ?? DataTableBuilder.CriarDataTable(dicionario);

            if (!BancoDeDadosVirtual.Tables.Contains(tabela.TableName))
            {
                BancoDeDadosVirtual.Tables.Add(tabela);
            }
            var persistencia = Activator.CreateInstance(persistenciaGenerica, dicionario);
            var repositorio  = Activator.CreateInstance(repositorioGenerico, this, persistencia, tabela);

            Repositorios.Add(nome, repositorio);
        }