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); }
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)); }
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); }
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); }
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); }