protected override void Execute(CodeActivityContext context) { Job job = context.GetValue(this.Job); string variableName = context.GetValue(this.Name); int dataSourceId = context.GetValue(this.DataSourceId); IdpePersistentVariable variable = null; if (job != null) { if (dataSourceId == 0) { dataSourceId = job.DataSource.Id; } variable = new Manager().GetPersistentVariable(dataSourceId, variableName); } else { WorkerData data = context.GetValue(this.Data); data.ThrowErrorIfNull(this.DisplayName); if (dataSourceId == 0) { dataSourceId = data.Job.DataSource.Id; } variable = new Manager().GetPersistentVariable(dataSourceId, variableName); } if (variable != null) { context.SetValue(ReutrnValue, variable.Value); } }
public IdpePersistentVariable SavePersistentVariable(int dataSourceId, string variableName, string variableValue) { if (string.IsNullOrEmpty(variableName)) { throw new Exception("Variable name can not be blank!"); } IDal dal = new DataAccessLayer(EyediaCoreConfigurationSection.CurrentConfig.Database.DatabaseType).Instance; IDbConnection connection = dal.CreateConnection(_ConnectionString); connection.Open(); IDbCommand command = dal.CreateCommand(); command.Connection = connection; IdpePersistentVariable variable = GetPersistentVariable(dataSourceId, variableName, dal, connection); if (variable == null) { command.CommandText = "INSERT INTO IdpePersistentVariable(DataSourceId, Name, Value, CreatedTS) "; command.CommandText += " VALUES (@DataSourceId, @Name, @Value, @CreatedTS)"; command.AddParameterWithValue("DataSourceId", dataSourceId); command.AddParameterWithValue("Name", variableName); command.AddParameterWithValue("Value", variableValue); command.AddParameterWithValue("CreatedTS", DateTime.Now); command.ExecuteNonQuery(); } else { command.CommandText = "UPDATE [IdpePersistentVariable] SET [Value] = @Value, [CreatedTS] = @CreatedTS "; command.CommandText += "WHERE [DataSourceId] = @DataSourceId AND [Name] = @Name"; command.AddParameterWithValue("DataSourceId", dataSourceId); command.AddParameterWithValue("Name", variableName); command.AddParameterWithValue("Value", variableValue); command.AddParameterWithValue("CreatedTS", DateTime.Now); command.ExecuteNonQuery(); } if (variable == null) { //if we are here, then we have inserted or updated, lets just fill the object and return it variable = new IdpePersistentVariable(); variable.DataSourceId = dataSourceId; variable.Name = variableName; variable.Value = variableValue; variable.CreatedTS = DateTime.Now; } else { variable.Value = variableValue; variable.CreatedTS = DateTime.Now; } return(variable); }
public IdpePersistentVariable GetPersistentVariable(int dataSourceId, string name, IDal dal = null, IDbConnection connection = null) { bool isLocalConnection = false; if (dal == null) { dal = new DataAccessLayer(EyediaCoreConfigurationSection.CurrentConfig.Database.DatabaseType).Instance; connection = dal.CreateConnection(_ConnectionString); connection.Open(); isLocalConnection = true; } IdpePersistentVariable variable = null; IDbCommand command = dal.CreateCommand("SELECT [Value] FROM IdpePersistentVariable WHERE DataSourceId = @DataSourceId AND Name = @Name", connection); command.AddParameterWithValue("DataSourceId", dataSourceId); command.AddParameterWithValue("Name", name); IDataReader reader = command.ExecuteReader(); if (reader.Read()) { variable = new IdpePersistentVariable(); variable.DataSourceId = dataSourceId; variable.Name = name; variable.Value = reader[0].ToString(); } reader.Close(); reader.Dispose(); command.Dispose(); if (isLocalConnection) { if (connection != null) { connection.Close(); connection.Dispose(); } } return(variable); }
public List <IdpePersistentVariable> GetPersistentVariables() { List <IdpePersistentVariable> variables = new List <IdpePersistentVariable>(); DataTable table = CoreDatabaseObjects.Instance.ExecuteCommand("SELECT * FROM IdpePersistentVariable"); if (table == null) { return(variables); } foreach (DataRow row in table.Rows) { IdpePersistentVariable variable = new IdpePersistentVariable(); variable.DataSourceId = (int)row["DataSourceId"].ToString().ParseInt(); variable.Name = row["Name"].ToString(); variable.Value = row["Value"].ToString(); variable.CreatedTS = (DateTime)row["CreatedTS"].ToString().ParseDateTime(); variables.Add(variable); } return(variables); }