示例#1
0
        public static AbstractLogUploader GetLogUploader(BaseModel model)
        {
            if (!model.StringVariables.Contains("LogUploader"))
                return null;

            if (!model.StringVariables.Contains("LoggingUrl"))
                return null;

            AbstractLogUploader result = null;
            var uploaderType = model.StringVariables["LogUploader"];
            if (uploaderType.Equals("InCertLogUploader", StringComparison.InvariantCulture))
                result = new GetBasedLogUploader();
            else if (uploaderType.Equals("WebApiLogUploader", StringComparison.InvariantCulture))
                result = new PostBasedLogUploader();

            if (result == null)
                return null;

            result.EndpointUrl = model.StringVariables["LoggingUrl"];
            result.MachineId = model.GetIdentifier();
            result.Session = IdentifierExtension.GetSessionId();
            result.UserId = "[unknown]";
            result.Timeout = 30000;

            return result;
        }
示例#2
0
        public PagedViewModel(BaseModel baseModel)
        {
            BaseModel = baseModel;

            Logger.Verbose("Initializing engine window");
            View = new PagedView { DataContext = this };
            ViewWindowHandle = new WindowInteropHelper(View).EnsureHandle();

            _bottomButtonsModel = new ButtonPanelModel(this);
            _contentPanelModel = new ContentPanelModel(this);

            Logger.Verbose("Initializing engine events");
            BaseModel.Bootstrapper.DetectBegin += DetectBegin;
            BaseModel.Bootstrapper.DetectRelatedBundle += DetectedRelatedBundle;
            BaseModel.Bootstrapper.DetectComplete += DetectComplete;
            BaseModel.Bootstrapper.PlanPackageBegin += PlanPackageBegin;
            BaseModel.Bootstrapper.PlanComplete += PlanComplete;
            BaseModel.Bootstrapper.ApplyBegin += ApplyBegin;
            BaseModel.Bootstrapper.ExecuteProgress += ExecuteProgressHandler;
            BaseModel.Bootstrapper.ExecutePackageBegin += ExecutePackageBegin;
            BaseModel.Bootstrapper.ExecutePackageComplete += ExecutePackageComplete;
            BaseModel.Bootstrapper.Error += ExecuteError;
            BaseModel.Bootstrapper.ResolveSource += ResolveSource;
            BaseModel.Bootstrapper.ApplyComplete += ApplyComplete;
            BaseModel.Bootstrapper.Progress += ProgressHandler;
            BaseModel.Bootstrapper.DetectUpdateComplete += DetectUpdateCompleteHandler;
            BaseModel.Bootstrapper.DetectPriorBundle += DetectPriorBundleHandler;
            BaseModel.Bootstrapper.DetectRelatedMsiPackage += DetectRelatedMsiPackageHandler;
        }
示例#3
0
        protected override void Run()
        {
            try
            {
                Logger.Initialize(Engine);
                Logger.Verbose("Launching bootstrapper engine");

                Logger.Verbose("Initializing base model");
                var baseModel = new BaseModel(this);

                Logger.Verbose("Initializing view model");
                var viewModel = new PagedViewModel(baseModel);

                //baseModel.UploadLogEntry("Install", "Starting install; version={0}", string.Format("{0}", Assembly.GetExecutingAssembly().GetName().Version));

                Logger.Verbose("Starting Detect");
                Engine.Detect();

                baseModel.Result = 1602; // assume result = cancel
                if (baseModel.Command.Display == Display.Passive || baseModel.Command.Display == Display.Full)
                {
                    Logger.Verbose("Showing view");
                    viewModel.View.Show();
                }

                Dispatcher.Run();

                Engine.Quit(baseModel.Result);
            }
            catch (Exception e)
            {
                Engine.Log(LogLevel.Error, string.Format("An exception occurred while attempting to initialize the engine: {0}", e.StackTrace));
                Engine.Quit(-1);
            }
        }