Example #1
0
 public Conexao(IAmbiente ambiente)
 {
     Ambiente   = ambiente ?? throw new ArgumentNullException(nameof(ambiente));
     Connection = ambiente.GetConnection();
     Connection.Open();
     SetarConexao();
 }
Example #2
0
        //-- ambiente

        public void SetAmbiente(IAmbiente ambiente)
        {
            _ambiente = ambiente ?? throw new ArgumentNullException(nameof(ambiente));
            _conexao  = ConexaoFactory.GetConexao(ambiente);
            _comando  = new Comando(ambiente.TipoDatabase);
            _migracao = new Migracao(this);
        }
        //-- valor padrao

        public static object GetValor(this IAmbiente ambiente, ValorPadraoAttribute valorPadrao)
        {
            switch (valorPadrao.Tipo)
            {
            case ValorPadraoTipo.EmpresaLogada:
                return(ambiente.CodigoEmpresa);

            case ValorPadraoTipo.UsuarioLogado:
                return(ambiente.CodigoUsuario);

            case ValorPadraoTipo.TerminalLogado:
                return(ambiente.CodigoTerminal);

            case ValorPadraoTipo.DataSistema:
                return(DateTime.Today);

            case ValorPadraoTipo.HoraSistema:
                return(DateTime.Now);

            case ValorPadraoTipo.ValorPadrao:
                return(valorPadrao.Valor);
            }

            return(null);
        }
Example #4
0
        public static IDbConnection GetConnection(this IAmbiente ambiente)
        {
            /*
             * Assembly assembly = Assembly.LoadFrom("MyNice.dll");
             * Type type = assembly.GetType("MyType");
             * object instanceOfMyType = Activator.CreateInstance(type);
             */

            var pathDriverAssembly = Path.Combine("Drivers", ambiente.TipoDatabase.ToString());
            var pathDriver         = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, pathDriverAssembly);

            PathExtensions.SetPath(pathDriver);

            var nomeAssembly = Path.Combine(pathDriver, ambiente.TipoDatabase.GetNomeAssembly());
            var assembly     = Assembly.LoadFrom(nomeAssembly);

            var nomeType = ambiente.TipoDatabase.GetNomeType();
            var type     = assembly.GetType(nomeType);

            var connection = (IDbConnection)Activator.CreateInstance(type);

            connection.ConnectionString = ambiente.GetConnectionString();

            return(connection);
        }
Example #5
0
 private static string SetConnectionString(this IAmbiente ambiente, string connectionString)
 {
     return(connectionString
            .Replace("{database}", ambiente.Database.GetAppPath())
            .Replace("{username}", ambiente.Username)
            .Replace("{password}", ambiente.Password)
            .Replace("{hostname}", ambiente.Hostname)
            );
 }
Example #6
0
        /// <summary>
        ///
        /// setar ambiente com base na chamada por linha de comando
        ///
        ///  ambiente
        ///   -ac - codigo
        ///     - teste
        ///
        ///   -at - tipo database
        ///    - Oracle
        ///    - MySql
        ///    - PostgreSql
        ///    - SqLite
        ///
        ///   -ad - database
        ///    - {appPath}\Dados
        ///
        ///   -au - username
        ///    - uteste
        ///
        ///   -ap - password
        ///    - uteste
        ///
        ///   -ah - hostname
        ///    - localhost
        ///
        ///   -av - provider
        ///
        ///   -ec - codigo empresa
        ///   -uc - cdigo usuario
        ///   -tc - codigo terminal
        ///
        /// </summary>
        /// <param name="ambiente"></param>
        public static void SetAmbiente(this IAmbiente ambiente)
        {
            var argAnt = string.Empty;

            ambiente.Codigo = "teste";

            foreach (var arg in Environment.GetCommandLineArgs())
            {
                switch (argAnt)
                {
                case "-ac":
                    ambiente.Codigo = arg;
                    break;

                case "-at":
                    ambiente.TipoDatabase = (TipoDatabase)Enum.Parse(typeof(TipoDatabase), arg);
                    break;

                case "-ad":
                    ambiente.Database = arg;
                    break;

                case "-au":
                    ambiente.Username = arg;
                    break;

                case "-ap":
                    ambiente.Password = arg;
                    break;

                case "-ah":
                    ambiente.Hostname = arg;
                    break;

                case "-av":
                    ambiente.ProviderName = arg;
                    break;

                case "-ec":
                    ambiente.CodigoEmpresa = Convert.ToInt32(arg.ObterNumero() ?? 0);
                    break;

                case "-tc":
                    ambiente.CodigoTerminal = Convert.ToInt32(arg.ObterNumero() ?? 0);
                    break;

                case "-uc":
                    ambiente.CodigoUsuario = Convert.ToInt32(arg.ObterNumero() ?? 0);
                    break;
                }

                argAnt = arg;
            }
        }
Example #7
0
        public static IConexao GetConexao(IAmbiente ambiente,
                                          TipoConexao tipoConexao = TipoConexao.Ambiente)
        {
            var codigoAmbiente = ambiente.Codigo + "#" + tipoConexao.ToString();

            var conexao = _listaDeConexao.ContainsKey(codigoAmbiente) ? _listaDeConexao[codigoAmbiente] : null;

            if (conexao == null)
            {
                conexao = new Conexao(ambiente);
                _listaDeConexao[codigoAmbiente] = conexao;
            }

            return(conexao);
        }
Example #8
0
        public InformacaoSistema(IAmbiente ambiente,
                                 IEmpresa empresa,
                                 IUsuario usuario,
                                 ITerminal terminal)
        {
            Ambiente = Check.NotNull(ambiente, nameof(ambiente));
            Ambiente.SetAmbiente();

            Empresa = Check.NotNull(empresa, nameof(empresa));
            Empresa.SetEmpresa();

            Usuario = Check.NotNull(usuario, nameof(usuario));
            Usuario.SetUsuario();

            Terminal = Check.NotNull(terminal, nameof(terminal));
            Terminal.SetTerminal();
        }
Example #9
0
        public static void SetarValorPadrao(this IAmbiente ambiente, object obj)
        {
            if (!_inValorPadrao)
            {
                return;
            }

            var valorPadroes = obj.GetType().GetValorPadroes();

            foreach (var valorPadrao in valorPadroes)
            {
                var valor = ambiente.GetValor(valorPadrao);
                if (valor != null)
                {
                    valorPadrao.Prop.SetValue(obj, valor);
                }
            }
        }
Example #10
0
        public static DataBase CreateDataBase(IAmbiente ambiente)
        {
            if (sectionHandler?.Name?.Length == 0)
            {
                throw new Exception("Database name not defined in DbFactoryConfiguration section of config file");
            }

            try
            {
                Type            database        = Type.GetType(sectionHandler.Name);
                ConstructorInfo constructorInfo = database.GetConstructor(new Type[] { });
                DataBase        databaseObj     = (DataBase)constructorInfo.Invoke(null);
                databaseObj.connectionString = ambiente.GetConnectionString(sectionHandler.ConnectionString);
                return(databaseObj);
            }
            catch (Exception excep)
            {
                throw new Exception("Error instantiating database " + sectionHandler.Name + ". " + excep.Message);
            }
        }
Example #11
0
 public AbstractDataContext(IAmbiente ambiente)
 {
     SetAmbiente(ambiente);
     SetMigracao();
 }
Example #12
0
 public AbstractAmbService(IAmbiente ambiente)
 {
     _ambiente = ambiente ?? throw new ArgumentNullException(nameof(ambiente));
 }
Example #13
0
 public void SetAmbiente(IAmbiente ambiente) =>
 _repositoryDataContext?.DataContext?.SetAmbiente(ambiente);
Example #14
0
 public static string GetConnectionString(this IAmbiente ambiente, string connectionString = null)
 {
     return(ambiente.SetConnectionString(connectionString ?? ambiente.TipoDatabase.GetConnectionString()));
 }
Example #15
0
 public void DatabaseTests_Cleanup()
 {
     _ambiente = null;
 }
Example #16
0
 public void DatabaseTests_Initialize()
 {
     _ambiente = Resolve <IAmbiente>();
 }
Example #17
0
 public AbstractDataContextDapper(IAmbiente ambiente)
 {
     SetAmbiente(ambiente);
 }