public void ConstructPackage(bool createNew)
        {
            // Create SSIS package
            package = new Microsoft.SqlServer.Dts.Runtime.Package();

            // Add DataFlow task
            dataFlowTask = package.Executables.Add("STOCK:PipelineTask");
            TaskHost taskhost = dataFlowTask as TaskHost;

            taskhost.Name = "Data Flow Task";
            pipeline      = taskhost.InnerObject as MainPipe;

            // Add source connection manager and adapter
            if (SourceProvider == null)
            {
                throw new InvalidOperationException("Empty source provider.");
            }
            else
            {
                srcConnMgr = SourceProvider.AddConnectionManager(package);
                srcComp    = SourceProvider.AddSourceAdapter(pipeline, srcConnMgr);
            }


            // Add destination connection manager and adapter, create new table if asked to.
            if (DestProvider == null)
            {
                throw new InvalidOperationException("Empty destination provider.");
            }
            else
            {
                if (createNew)
                {
                    DestProvider.CreateDestination(srcComp.OutputCollection[0].OutputColumnCollection);
                }
                destConnMgr = DestProvider.AddConnectionManager(package);
                destComp    = DestProvider.AddDestAdapter(pipeline, destConnMgr, out destDesignTimeComp);
            }
        }