예제 #1
0
        public GlobalJsonResult <InstallationResult> InstallNextComponent([FromBody] ComponentInstallationRequest request)
        {
            var installationResult = installation.InstallNextComponent(request.InstallationComponentId, Version.Parse(request.Version));

            var result = new InstallationResult();

            result.PopulateFrom(installationResult);

            return(result.IsSuccess
                ? GlobalJsonResult <InstallationResult> .Success(System.Net.HttpStatusCode.Created, result)
                : GlobalJsonResult <InstallationResult> .Success(System.Net.HttpStatusCode.OK, result));
        }
예제 #2
0
        public GlobalJsonResult <InstallationResult> StartInstallation([FromBody] StartInstallationRequest request)
        {
            var installationResult = installation.StartInstallation();

            var result = new InstallationResult();

            result.PopulateFrom(installationResult);

            return(result.IsSuccess
                ? GlobalJsonResult <InstallationResult> .Success(System.Net.HttpStatusCode.Created, result)
                : GlobalJsonResult <InstallationResult> .Success(System.Net.HttpStatusCode.OK, result));
        }
예제 #3
0
        public async Task <JsonResult> Install(InstallationModel model)
        {
            if (!ModelState.IsValid)
            {
                var result = new InstallationResult();
                ModelState.SelectMany(x => x.Value.Errors).Each(x => result.Errors.Add(x.ErrorMessage));
                return(Json(result));
            }
            else
            {
                var result = await _installService.InstallAsync(model, HttpContext.RequestServices.AsLifetimeScope());

                return(Json(result));
            }
        }
예제 #4
0
        private static InstallationResultContainer FinalInstallationResultContainer(
            InstallationResultContainer container, InstallationResult result, int numberOfSuccessfulTasks, bool atLeastOneTaskFailed)
        {
            if (_atLeastOneTaskFailedWhereFailureCausesAllStop || numberOfSuccessfulTasks < 1)
            {
                container.InstallationResult = InstallationResult.Failure;
                return(container);
            }

            if (atLeastOneTaskFailed)
            {
                container.InstallationResult = InstallationResult.PartialSuccess;
                return(container);
            }

            container.InstallationResult = result;
            return(container);
        }
예제 #5
0
        /// <summary>
        /// The install.
        /// </summary>
        /// <param name="applicationDefinition">
        /// The application definition.
        /// </param>
        /// <returns>
        /// The <see cref="InstallationResult"/>.
        /// </returns>
        public override InstallationResult Install(ApplicationDefinition applicationDefinition)
        {
            InstallationResult result = base.Install(applicationDefinition);

            RemoteIsolatedStorageFile store = GetIsoStorage(applicationDefinition);

            if (store.FileExists(BddhostFilePath))
            {
                store.DeleteFile(BddhostFilePath);
            }

            string hostName = Dns.GetHostEntry("127.0.0.1").HostName + ":" + this.Port;

            File.WriteAllLines(BddhostFilePath, new[] { hostName });

            store.SendFile(BddhostFilePath, BddhostFilePath, true);

            return(result);
        }
예제 #6
0
        public ActionResult Setup(InstallModel installModel)
        {
            if (CurrentRequestData.DatabaseIsInstalled)
            {
                return(Redirect("~"));
            }

            //set page timeout to 5 minutes
            Server.ScriptTimeout = 300;

            InstallationResult installationResult = _installationService.Install(installModel);

            if (!installationResult.Success)
            {
                ViewData["installationResult"] = installationResult;

                return(ShowPage(installModel));
            }
            return(Redirect("~"));
        }
예제 #7
0
        public override InstallationResult Install(ref double Progress)
        {
            DirectoryInfo directoryInfo = new DirectoryInfo("./Temporary/" + Guid.NewGuid().ToString());

            if (!directoryInfo.Exists)
            {
                directoryInfo.Create();
            }
            //UAPScriptEnv.WorkingDirectory = directoryInfo;
            Host.WriteLine("Getting install script:" + InstallationScript);
            LiteManagedHttpDownload.Downloader.DownloadToFileAsync(InstallationScript, Path.Combine(directoryInfo.FullName, "InstalScript.uapscript")).Wait();
            UAPScript script = new UAPScript(Path.Combine(directoryInfo.FullName, "InstalScript.uapscript"), this);

            script.WorkingDirectory = directoryInfo.CreateSubdirectory("WorkingSpace");
            var d = directoryInfo.CreateSubdirectory("TargetBinaries");

            script.Execute();
            InstallationResult installationResult = new InstallationResult();

            installationResult.BinFolder = d;
            installationResult.Status    = InstallationStatus.Succeed;
            return(installationResult);
        }