Пример #1
0
            public EtlVariable[] GetVariables()
            {
                var variables = new EtlVariable[_variables.Count];

                for (var i = 0; i < variables.Length; i++)
                {
                    variables[i] = (EtlVariable)_variables[i].Clone();
                }

                return(variables);
            }
Пример #2
0
        private List <EtlVariable> SelectEtlVariables(string etlPackageId, string etlSessionId)
        {
            const string sql =
                @"select 
    sv.[Name],
    sv.[Modifier],
    sv.[Value],
    sv.[LogDateTime], 
    sv.[LogUtcDateTime], 
    sv.[IsSecure]
from
    {0}[EtlVariables] sv with (nolock)
where 
    sv.[EtlPackageId] = @EtlPackageId and
    sv.[EtlSessionId] = @EtlSessionId
";
            var variables = new List <EtlVariable>();

            using (var conn = CreateConnection())
            {
                conn.Open();

                var cmd = conn.CreateCommand();
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = string.Format(sql, _schemaToken);
                cmd.Parameters.AddWithValue("@EtlPackageId", etlPackageId);
                cmd.Parameters.AddWithValue("@EtlSessionId", etlSessionId);

                using (var reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var es = new EtlVariable
                        {
                            EtlPackageId = etlPackageId,
                            EtlSessionId = etlSessionId,
                            Name         = EtlValueConverter.ToString(reader["Name"]),
                            Modifier     = (EtlVariableModifier)EtlValueConverter.ParseInt32(reader["Modifier"]),
                            Value        = EtlValueConverter.ToString(reader["Value"]),
                            IsSecure     = EtlValueConverter.ParseBoolean(reader["IsSecure"]),
                            DateTime     = EtlValueConverter.ParseDateTime(reader["LogDateTime"]),
                            UtcDateTime  = EtlValueConverter.ParseDateTime(reader["LogUtcDateTime"]),
                        };

                        variables.Add(es);
                    }
                }
            }

            return(variables);
        }
Пример #3
0
            private EtlVariable EscapeVariable(EtlVariable variable)
            {
                if (variable == null)
                {
                    return(null);
                }

                var escapedVariable = (EtlVariable)variable.Clone();

                if (variable.IsSecure)
                {
                    escapedVariable.Value = SECURE_VARIABLE_ESCAPED_VALUE;
                }

                return(escapedVariable);
            }
Пример #4
0
            public void InitVariables(IEnumerable <EtlVariableInfo> variablesInfo, IEnumerable <EtlVariableAssignment> assignments)
            {
                _variables.Clear();

                foreach (var variableInfo in variablesInfo)
                {
                    var variable = new EtlVariable
                    {
                        EtlPackageId = this.EtlPackageId,
                        EtlSessionId = this.EtlSessionId,
                        Name         = variableInfo.Name,
                        Modifier     = variableInfo.Modifier,
                        IsSecure     = variableInfo.IsSecure,
                        DateTime     = DateTime.Now,
                        UtcDateTime  = DateTime.Now.ToUniversalTime(),
                    };

                    switch (variableInfo.Modifier)
                    {
                    case EtlVariableModifier.Bound:
                        variable.Value = EvaluateBoundVariable(variableInfo);
                        break;

                    case EtlVariableModifier.Input:
                        variable.Value = variableInfo.DefaultValue;
                        break;

                    case EtlVariableModifier.Output:
                        variable.Value = variableInfo.DefaultValue;
                        break;

                    default:
                        throw new InvalidOperationException(string.Format(Properties.Resources.UnknownVariableModifier, variableInfo.Name, variableInfo.Modifier));
                    }

                    _variables.Add(variable);
                }

                foreach (var assignment in assignments)
                {
                    AssignVariable(assignment, true);
                }
            }
Пример #5
0
        public void LogEtlVariable(EtlVariable variable)
        {
            if (variable == null)
            {
                throw new ArgumentNullException("variable");
            }

            var logDateTime = DateTime.Now;

            var sb = new StringBuilder();

            sb.Append("insert into ");
            sb.Append(_schemaToken);
            sb.Append("[EtlVariables]");
            sb.Append("([EtlPackageId], [EtlSessionId], [LogDateTime], [LogUtcDateTime], [Name], [Modifier], [Value], [IsSecure])");
            sb.Append(" values ");
            sb.Append("(@pid, @sid, @dt, @udt, @name, @mod, @val, @sec)");
            var sql = sb.ToString();

            using (var conn = CreateConnection())
            {
                conn.Open();

                var now = DateTime.Now;

                var cmd = conn.CreateCommand();
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = sql;

                AddParameter(cmd, "@pid", variable.EtlPackageId);
                AddParameter(cmd, "@sid", variable.EtlSessionId);
                AddParameter(cmd, "@dt", variable.DateTime);
                AddParameter(cmd, "@udt", variable.UtcDateTime);
                AddParameter(cmd, "@name", variable.Name);
                AddParameter(cmd, "@mod", (int)variable.Modifier);
                AddParameter(cmd, "@val", variable.Value);
                AddParameter(cmd, "@sec", variable.IsSecure);

                cmd.ExecuteNonQuery();
            }
        }
Пример #6
0
 public void LogEtlVariable(EtlVariable variable)
 {
 }
        public void LogEtlVariable(EtlVariable variable)
        {
            if (variable == null)
            {
                throw new ArgumentNullException("variable");
            }

            var logDateTime = DateTime.Now;

            var sb = new StringBuilder();
            sb.Append("insert into ");
            sb.Append(_schemaToken);
            sb.Append("[EtlVariables]");
            sb.Append("([EtlPackageId], [EtlSessionId], [LogDateTime], [LogUtcDateTime], [Name], [Modifier], [Value], [IsSecure])");
            sb.Append(" values ");
            sb.Append("(@pid, @sid, @dt, @udt, @name, @mod, @val, @sec)");
            var sql = sb.ToString();

            using (var conn = CreateConnection())
            {
                conn.Open();

                var now = DateTime.Now;

                var cmd = conn.CreateCommand();
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = sql;

                AddParameter(cmd, "@pid", variable.EtlPackageId);
                AddParameter(cmd, "@sid", variable.EtlSessionId);
                AddParameter(cmd, "@dt", variable.DateTime);
                AddParameter(cmd, "@udt", variable.UtcDateTime);
                AddParameter(cmd, "@name", variable.Name);
                AddParameter(cmd, "@mod", (int)variable.Modifier);
                AddParameter(cmd, "@val", variable.Value);
                AddParameter(cmd, "@sec", variable.IsSecure);

                cmd.ExecuteNonQuery();
            }
        }
        private List<EtlVariable> SelectEtlVariables(string etlPackageId, string etlSessionId)
        {
            const string sql =
            @"select
            sv.[Name],
            sv.[Modifier],
            sv.[Value],
            sv.[LogDateTime],
            sv.[LogUtcDateTime],
            sv.[IsSecure]
            from
            {0}[EtlVariables] sv with (nolock)
            where
            sv.[EtlPackageId] = @EtlPackageId and
            sv.[EtlSessionId] = @EtlSessionId
            ";
            var variables = new List<EtlVariable>();
            using (var conn = CreateConnection())
            {
                conn.Open();

                var cmd = conn.CreateCommand();
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = string.Format(sql, _schemaToken);
                cmd.Parameters.AddWithValue("@EtlPackageId", etlPackageId);
                cmd.Parameters.AddWithValue("@EtlSessionId", etlSessionId);

                using (var reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var es = new EtlVariable
                        {
                            EtlPackageId = etlPackageId,
                            EtlSessionId = etlSessionId,
                            Name = EtlValueConverter.ToString(reader["Name"]),
                            Modifier = (EtlVariableModifier)EtlValueConverter.ParseInt32(reader["Modifier"]),
                            Value = EtlValueConverter.ToString(reader["Value"]),
                            IsSecure = EtlValueConverter.ParseBoolean(reader["IsSecure"]),
                            DateTime = EtlValueConverter.ParseDateTime(reader["LogDateTime"]),
                            UtcDateTime = EtlValueConverter.ParseDateTime(reader["LogUtcDateTime"]),
                        };

                        variables.Add(es);
                    }
                }
            }

            return variables;
        }