public virtual void Initialize()
        {
            IBootstrapConstraintContext context = new DefaultBootstrapConstraintContext(this);

            foreach (IBootstrapTask task in Tasks)
            {
                if (provider.GetConstraints(task.GetType()).IsSatisfied(task, context))
                {
                    InitializeTask(task);
                }
            }
        }
        protected bool AreConstraintsSatisfied(IBootstrapTask task)
        {
            IBootstrapConstraintContext context = new DefaultBootstrapConstraintContext(this);

            return(provider.GetConstraints(task.GetType()).IsSatisfied(task, context));
        }