public virtual void ConnectTaskComponentTo(TaskComponent targetTaskComponent)
 {
     Container.AddPrecedenceConstraint(targetTaskComponent.Executable as Executable, Executable as Executable);
 }
 public virtual void ConnectTaskComponentFrom(TaskComponent targetTaskComponent)
 {
     Container.AddPrecedenceConstraint(Executable as Executable, targetTaskComponent.Executable as Executable);
 }
        private void CreateSqlCommandTask(TaskComponent connectToThis)
        {
            const string sqlExpression = "\"Import.usp_UpdateImportRun \" + (DT_WSTR, 10)@[User::ImportRunId]";
            var importRunUpdateSqlVar = Package.AddVariable("UpdateImportRunSql", sqlExpression, false, true);
            var sqlCommandTask = new NonQuerySqlCommandFromVarExpressionTask("UpdateImportRun", Package, Application, StagingConnection, importRunUpdateSqlVar, false);

            sqlCommandTask.ConstructComponent();

            if (!sqlCommandTask.IsValid)
            {
                throw new SsisScripterException("Just tried to create a NonQuerySqlCommandFromVarExpressionTask for this import but it is not valid");
            }

            sqlCommandTask.ConnectTaskComponentTo(connectToThis);
        }