internal static IEnumerable <IInstallationStep> GetUpdateProcedure(params string[] args) { // create tmp folder string installedDate = null; var tmpFolder = Path.GetTempPath(); var owner = ProcessAsUser.GetProcessOwner(Process.GetCurrentProcess().Id).ToLower(); bool bAsUser = owner.Contains("system"); Trace.WriteLine("SpareioInstaller owner=" + owner); var cmdArgs = new Utils.CmdLineArgs(args); bool bPreProd = cmdArgs.CheckArg("preprod"); string _token = String.Empty; _token = cmdArgs.CheckArg("xToken") ? cmdArgs.GetArgValue("xToken") : InstallUtils.ReadValue("xToken"); InitializeEventService(args); yield return(new GenerateInstallMachineIds()); yield return(new StopProcess(InstallUtils.WcProcessName)); yield return(new DownloadStep(tmpFolder, TimeSpan.FromMinutes(DownloadStep.UpdateTimeout), DownloadStep.UpdateRetry, args) { Validator = x => ZipUtils.IsZipValid(x) }); yield return(new UnInstallService(InstallService.ServiceName, InstallService.ExeName, true)); yield return(new UnzipStep(Path.Combine(tmpFolder, "Spareio.zip"), InstallUtils.GetInstallFolder())); yield return(new RemoveUninstallInfoStep { Installed = iDate => { installedDate = iDate; } }); yield return(new UninstallInfoStep { InstalledDate = installedDate }); yield return(new InstallService(InstallUtils.GetWcRunFolder())); yield return(new ExecuteCommandStep("sc.exe", new[] { "start", InstallService.ServiceName, !String.IsNullOrEmpty(_token) ? _token : "" }) { HideWindow = true }); //yield return new RunSpareio(Path.Combine(InstallUtils.GetWcRunFolder(), "Spareio.exe")) { silent = true, preprod = bPreProd, update = true, InitMessage = "Applying update for distributed components..." }; yield return(new RunSpareio(Path.Combine(InstallUtils.GetWcRunFolder(), "Spareio.exe"), "") { preprod = bPreProd, AsUser = bAsUser, afterupdate = true, WaitForExit = false }); yield return(new ReportUpdateResultStep(ReportUpdateResultStep.InstallState.Ok, "CompleteUpdate")); }
internal static IEnumerable <IInstallationStep> GetInstallationProcedure(params string[] args) { // create tmp folder var tmpFolder = Path.GetTempPath(); var cmdArgs = new Utils.CmdLineArgs(args); bool bSilent = cmdArgs.CheckArg("silent"); string xToken = cmdArgs.GetArgValue("xToken"); InitializeEventService(args); yield return(new GenerateInstallMachineIds()); yield return(new CreatePartnerInfoStep(args)); yield return(new DownloadStep(tmpFolder, TimeSpan.FromMinutes(DownloadStep.InstallTimeout), DownloadStep.InstallRetry, args) { Validator = x => ZipUtils.IsZipValid(x) }); yield return(new UnzipStep(Path.Combine(tmpFolder, "Spareio.zip"), InstallUtils.GetInstallFolder())); yield return(new InstallService(InstallUtils.GetWcRunFolder())); yield return(new ExecuteCommandStep("sc.exe", new[] { "start", InstallService.ServiceName, xToken }) { HideWindow = true }); yield return(new UninstallInfoStep()); yield return(new UpdateInstalledRegistry(true)); yield return(new RunSpareio(Path.Combine(InstallUtils.GetWcRunFolder(), "Spareio.exe")) { silent = bSilent, install = true, InitMessage = "Applying Selected Configuration ..." }); yield return(new RunSpareio(Path.Combine(InstallUtils.GetWcRunFolder(), "Spareio.exe")) { silent = bSilent, afterinstall = true, WaitForExit = false }); yield return(new ReportInstallationResultStep(ReportInstallationResultStep.InstallState.Ok, "CompleteInstall")); }
private static void InitializeEventService(string[] args) { string _partnerId = String.Empty; string _campaignId = String.Empty; string _token = String.Empty; if (args != null) { var argumentProcessor = new Utils.CmdLineArgs(args); if (argumentProcessor.CheckArg("partner")) { _partnerId = argumentProcessor.GetArgValue("partner"); } else { _partnerId = InstallUtils.ReadValue("PartnerId"); } if (argumentProcessor.CheckArg("campaign")) { _campaignId = argumentProcessor.GetArgValue("campaign"); } else { _campaignId = InstallUtils.ReadValue("CampaignId"); } if (argumentProcessor.CheckArg("xToken")) { _token = argumentProcessor.GetArgValue("xToken"); } else { _token = InstallUtils.ReadValue("xToken"); } } EventService.Initialize(_partnerId, _campaignId, _token); }