/// <summary>
 /// Creates a new model of the root view.
 /// </summary>
 public RootViewModel()
 {
     Bootstrapper.Model.Bootstrapper.Engine.Log(LogLevel.Verbose, "Entering RootViewModel constructor");
     ProgressViewModel = new ProgressViewModel(this);
     InstallationViewModel = new InstallationViewModel(this, ProgressViewModel);
     UpdateViewModel = new UpdateViewModel(this);
     Bootstrapper.Model.Bootstrapper.Engine.Log(LogLevel.Verbose, "Exiting RootViewModel constructor");
 }
        /// <summary>
        /// Creates a new model of the installation view.
        /// </summary>
        public InstallationViewModel(RootViewModel root, ProgressViewModel progressViewModel)
        {
            //Bootstrapper.Model.Bootstrapper.Engine.Log(LogLevel.Verbose, "Entering InstallationViewModel constructor");
            _root = root;
            _progressViewModel = progressViewModel;
            _downloadRetries = new Dictionary<string, int>();

            _root.PropertyChanged += RootPropertyChanged;

            Bootstrapper.Model.Bootstrapper.DetectBegin += DetectBegin;
            Bootstrapper.Model.Bootstrapper.DetectRelatedBundle += DetectedRelatedBundle;
            Bootstrapper.Model.Bootstrapper.DetectPackageComplete += DetectedPackage;
            Bootstrapper.Model.Bootstrapper.DetectComplete += DetectComplete;
            Bootstrapper.Model.Bootstrapper.PlanPackageBegin += PlanPackageBegin;
            Bootstrapper.Model.Bootstrapper.PlanComplete += PlanComplete;
            Bootstrapper.Model.Bootstrapper.ApplyBegin += ApplyBegin;
            Bootstrapper.Model.Bootstrapper.Error += ExecuteError;
            Bootstrapper.Model.Bootstrapper.ResolveSource += ResolveSource;
            Bootstrapper.Model.Bootstrapper.ApplyComplete += ApplyComplete;
            //Bootstrapper.Model.Bootstrapper.Engine.Log(LogLevel.Verbose, "Leaving InstallationViewModel constructor");
        }