internal static EfContext Create(Conexao connection, SessaoDeRequisicaoDoUsuario userSessionRequest) { var connectionString = connection.ObterStringDeConexao(userSessionRequest); var createDatabaseIfNotExists = connection.CriarOBancoDeDadosCasoNaoExista; var dbContextType = connection.TipoDoContexto; var efContext = Activator.CreateInstance(dbContextType, new object[] { connectionString }).DnCast <EfContext>(); efContext.UserSessionRequest = userSessionRequest; CreateDB(createDatabaseIfNotExists, efContext); return(efContext); // Deixar essa parte de interceptador pra quando for necessários. // var interceptor = new ContextInterceptor(Guid.Empty); // return new ProxyGenerator().CreateClassProxy(typeof(EfContext), new object[] { connectionString }, interceptor) as EfContext; }
internal static void AdicionarSessaoDeRequisicao(SessaoDeRequisicaoDoUsuario sessaoDeRequisicaoDoUsuario) => SessoesDeRequisicoesDeUsuarios.TryAdd(sessaoDeRequisicaoDoUsuario.IdentificadorDaSessao, sessaoDeRequisicaoDoUsuario);
public static IDnObjetosTransacionais Criar(Type transactionObjectsType, Conexao connection, SessaoDeRequisicaoDoUsuario userSessionRequest) { return(Activator.CreateInstance(transactionObjectsType, connection, userSessionRequest) as IDnObjetosTransacionais); }
internal static DnServicoTransacionalBase Criar(Type tipoDeServico, object httpContext, SessaoDeRequisicaoDoUsuario sessaoDeRequisicao = null) { var sessionId = Guid.NewGuid(); tipoDeServico = GetSpecializedService(tipoDeServico); var service = FabricaDeServicoLazy.Criar(tipoDeServico, sessionId); var userSession = sessaoDeRequisicao ?? CreateUserSession(httpContext, sessionId, service); service.DefinirSessaoDoUsuario(userSession); return(service); }
internal static DnServicoTransacionalBase Criar(Type tipoDeServico, SessaoDeRequisicaoDoUsuario sessaoDeRequisicao) { return(Criar(tipoDeServico, sessaoDeRequisicao.HttpContext, sessaoDeRequisicao)); }
protected internal virtual void DefinirSessaoDoUsuario(SessaoDeRequisicaoDoUsuario sessaoDaRequisicao) { SessaoDaRequisicao = sessaoDaRequisicao; }
public static DnServicoTransacionalBase GetServiceInstanceByEntity(this Type entityType, SessaoDeRequisicaoDoUsuario SessionRequest) { if (entityType?.IsSubclassOf(typeof(DnEntidade)) != true) { throw new DesenvolvimentoIncorretoException($"The service instance attempt using the {nameof(GetServiceInstanceByEntity)} method failed because the passed type is not a {nameof(DnEntidade)}"); } var type = (Setup.ConfiguracoesGlobais.TipoGenericoDeServico) ?? typeof(DnServico <>); var serviceType = type.MakeGenericType(entityType).GetSpecializedService(); return(serviceType.GetServiceInstanceByServiceType(SessionRequest)); }
public static DnServicoTransacionalBase GetServiceInstanceByServiceType(this Type serviceType, SessaoDeRequisicaoDoUsuario SessionRequest) { if (serviceType == null) { throw new ArgumentNullException(nameof(serviceType)); } if (SessionRequest == null) { throw new ArgumentNullException(nameof(SessionRequest)); } if (serviceType.Name == "DnDynamicProxy") { serviceType = serviceType.BaseType; } if (serviceType == null) { throw new ArgumentNullException(nameof(serviceType)); } if (!serviceType.IsSubclassOf(typeof(DnServicoTransacionalBase))) { throw new DesenvolvimentoIncorretoException($"The service instance attempt using the {nameof(GetServiceInstanceByServiceType)} method failed because the passed type is not a {nameof(DnServicoTransacionalBase)}"); } if (SessionRequest.Servicos.TryGetValue(serviceType, out var ser)) { return(ser as DnServicoTransacionalBase); } var service = FabricaDeServico.Criar(serviceType, SessionRequest.LocalHttpContext, SessionRequest); SessionRequest.Servicos.Add(serviceType, service); return(service); }
/// <summary> /// Initializes a new instance of the <see cref="TransactionObjects"/> class. /// Inicializa objeto de transação. /// </summary> /// <param Nome="dataBaseConnectionString"> /// String de conexão com o banco de dados. /// </param> public TransactionObjects(Conexao connection, SessaoDeRequisicaoDoUsuario userSessionRequest) { this.UserSessionRequest = userSessionRequest; this.Sessao = ContextFactory.Create(connection, UserSessionRequest); }