public EncodingDecorator Build()
        {
            EncodingDecorator encoding = null;

            for (var i = SetupActions.Count - 1; i >= 0; i--)
            {
                encoding = SetupActions[i](encoding);
            }
            return(encoding);
        }
Esempio n. 2
0
 /// <summary>
 /// Add common setup action (will be always called during Setup phase)
 /// </summary>
 /// <param name="action">Action delegate</param>
 public void Configure(Action action)
 {
     if (action == null)
     {
         throw new ArgumentNullException(nameof(action));
     }
     SetupActions.Add(new AppSetupAction(action, AppEnv.All));
 }
Esempio n. 3
0
        /// <summary>
        /// Add an action for specific <para>environments</para> (will be called only
        /// for given envronements during setup phase)
        /// </summary>
        /// <param name="action">Action delegate</param>
        /// <param name="appEnv">AppEnv instance</param>
        public void ConfigureFor(AppEnv appEnv, Action action)
        {
            if (action == null)
            {
                throw new ArgumentNullException(nameof(action));
            }
            if (appEnv == null)
            {
                throw new ArgumentNullException(nameof(appEnv));
            }

            SetupActions.Add(new AppSetupAction(action, appEnv));
        }
Esempio n. 4
0
 public void LoadActions()
 {
     if (Type == SlideType.Action)
     {
         try
         {
             List <string> parts = new List <string>();
             using (StreamReader sr = new StreamReader(Source))
             {
                 string text     = sr.ReadToEnd();
                 var    commands = text.Split(";", StringSplitOptions.RemoveEmptyEntries).Select(s => (s + ";").Trim());
                 parts = commands.ToList();
             }
             Title = "AUTO SEQ";
             foreach (var part in parts)
             {
                 // parse into commands
                 if (part == ";")
                 {
                 }
                 else if (part.StartsWith("!"))
                 {
                     if (part == ("!fullauto;"))
                     {
                         AutoOnly = true;
                     }
                 }
                 else if (part.StartsWith("@"))
                 {
                     var a = AutomationAction.Parse(part.Remove(0, 1));
                     SetupActions.Add(a);
                 }
                 else if (part.StartsWith("#"))
                 {
                     var title = Regex.Match(part, @"#(?<title>.*);").Groups["title"].Value;
                     Title = title;
                 }
                 else
                 {
                     var a = AutomationAction.Parse(part);
                     Actions.Add(a);
                 }
             }
         }
         catch (Exception)
         {
         }
     }
 }
Esempio n. 5
0
 public static void Setup(TestContext context)
 {
     _session = SetupActions.LaunchApp();
 }
Esempio n. 6
0
 public static void Setup(TestContext context)
 {
     _session = SetupActions.LaunchApp();
     //_fiddler = LaunchFiddlerAcions.LaunchFiddler();// неудачная попытка вкрячить фиддлер
 }
Esempio n. 7
0
 public static IWiXSetup Create(IDictionary<string, string> Ctx, SetupActions Action)
 {
     var SetupVars = new SetupVariables();
     FillFromSession(Ctx, SetupVars);
     SetupVars.SetupAction = Action;
     SetupVars.IISVersion = Global.IISVersion;
     AppConfig.LoadConfiguration(new ExeConfigurationFileMap { ExeConfigFilename = GetFullConfigPath(SetupVars) });
     return new PortalSetup(SetupVars, GetModeExtension(Ctx));
 }
Esempio n. 8
0
        /// <summary>
        /// Parses the command line.
        /// </summary>
        /// <param name="commandLine">The command line.</param>
        /// <returns>true if no errors</returns>
        private static bool ParseCommandLine()
        {
            // Get command line arguments and decide if setup is to be Unattended
            String[] arguments = Environment.GetCommandLineArgs();
            CommandlineParameters commandlineParameters = new CommandlineParameters();

            // Parse command line arguments
            commandlineParameters.ParseCommandline(arguments);

            if ((bool)commandlineParameters.GetParameterValue(CommandlineParameterId.Help) == true)
            {
                MessageBox.Show(WPFResourceDictionary.CommandlineUsage, WPFResourceDictionary.SetupMessageBoxTitle, MessageBoxButton.OK);
                return(false);
            }

            SetupLogger.LogInfo("Main : Current directory = {0}", Environment.CurrentDirectory);

            if (commandlineParameters.IsParameterSpecified(CommandlineParameterId.Action) == false)
            {
                commandlineParameters.SetParameterValue(CommandlineParameterId.Action, SetupActions.UserInterface);
            }

            if ((SetupActions)commandlineParameters.GetParameterValue(CommandlineParameterId.Action) == SetupActions.UnattendedInstall &&
                (bool)commandlineParameters.GetParameterValue(CommandlineParameterId.AcceptLicense) == false &&
                (bool)commandlineParameters.GetParameterValue(CommandlineParameterId.OemSetup) == false)
            {
                SetupLogger.LogInfo("Have NOT acknowledge acceptance of the license terms in unattended install.");
                return(false);
            }

            String iniFile = (String)commandlineParameters.GetParameterValue(CommandlineParameterId.IniFile);

            try
            {
                if (iniFile == null)
                {
                    SetupInputs.Instance.LoadParameterList(parameterList);
                }
                else
                {
                    SetupInputs.Instance.LoadFrom(iniFile, parameterList);
                }
            }
            catch (Exception ex)
            {
                SetupLogger.LogInfo("ParseCommandLine() ", ex);
                return(false);
            }

            // Need to save the installation location in property bag for prerequisite check
            String installationLocation = SetupInputs.Instance.FindItem(SetupInputTags.BinaryInstallLocationTag);

            PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.InstallationLocation, installationLocation);

            String installSource = (String)commandlineParameters.GetParameterValue(CommandlineParameterId.SetupLocation);

            if (!String.IsNullOrEmpty(installSource))
            {
                installSource = Path.Combine(installSource, SetupConstants.SetupFolder);
                PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.LocationOfSetupFiles, installSource);
            }
            else
            {
                installSource = PropertyBagDictionary.Instance.GetProperty <string>(PropertyBagDictionary.SetupExePath);
            }
            String certificateThumbprint = SetupInputs.Instance.FindItem(SetupInputTags.CmpCertificateThumbprintTag);

            if (!String.IsNullOrEmpty(certificateThumbprint))
            {
                certificateThumbprint = "LocalMachine,My," + certificateThumbprint;
                PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.CMPCertificateThumbprint, certificateThumbprint);
            }

            SetupLogger.LogInfo("OriginalInstallSource: {0}", installSource);
            SetupActions setupAction = (SetupActions)commandlineParameters.GetParameterValue(CommandlineParameterId.Action);

            if (setupAction == SetupActions.UnattendedUninstall)
            {
                PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.Uninstall, "1");
            }
            if (setupAction != SetupActions.UserInterface)
            {
                PropertyBagDictionary.Instance.SafeAdd(PropertyBagDictionary.Silent, true);

                SetupFeatures setupFeaturesFlags = (SetupFeatures)commandlineParameters.GetParameterValue(CommandlineParameterId.Feature);
                if ((setupFeaturesFlags & SetupFeatures.TenantExtension) == SetupFeatures.TenantExtension)
                {
                    PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.TenantExtension, "1");
                    PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.ExtensionCommon, "1");
                }
                if ((setupFeaturesFlags & SetupFeatures.AdminExtension) == SetupFeatures.AdminExtension)
                {
                    PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.AdminExtension, "1");
                    PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.ExtensionCommon, "1");
                }
                if ((setupFeaturesFlags & SetupFeatures.Server) == SetupFeatures.Server)
                {
                    PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.Server, "1");
                }
            }

            bool isLocalSystemAccount = SetupInputs.Instance.FindItem(SetupInputTags.CmpServiceLocalAccountTag);

            if (!isLocalSystemAccount)
            {
                SetupInputs.Instance.EditItem(SetupInputTags.CmpServiceDomainTag, commandlineParameters.GetParameterValue(CommandlineParameterId.CmpServiceDomain));
                SetupInputs.Instance.EditItem(SetupInputTags.CmpServiceUserNameTag, commandlineParameters.GetParameterValue(CommandlineParameterId.CmpServiceUserName));
                SetupInputs.Instance.EditItem(SetupInputTags.CmpServiceUserPasswordTag, commandlineParameters.GetParameterValue(CommandlineParameterId.CmpServiceUserPassword));
            }

            bool isDatabaseImpersonation = SetupInputs.Instance.FindItem(SetupInputTags.RemoteDatabaseImpersonationTag);

            if (isDatabaseImpersonation)
            {
                try
                {
                    SetupInputs.Instance.EditItem(SetupInputTags.SqlDBAdminDomainTag, commandlineParameters.GetParameterValue(CommandlineParameterId.SqlDBAdminDomain));
                    SetupInputs.Instance.EditItem(SetupInputTags.SqlDBAdminNameTag, commandlineParameters.GetParameterValue(CommandlineParameterId.SqlDBAdminName));
                    SetupInputs.Instance.EditItem(SetupInputTags.SqlDBAdminPasswordTag, commandlineParameters.GetParameterValue(CommandlineParameterId.SqlDBAdminPassword));
                }
                catch (Exception ex)
                {
                    SetupLogger.LogInfo("ParseCommandLine(), SqlDBAdminDomain or SqlDBAdminName or SqlDBAdminPassword is null  or invalid", ex);
                    return(false);
                }
            }

            if ((bool)commandlineParameters.GetParameterValue(CommandlineParameterId.OemSetup))
            {
                PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.VhdVersionPreparation, true);
            }

            if ((bool)commandlineParameters.GetParameterValue(CommandlineParameterId.Configure))
            {
                PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.VhdVersionConfiguration, true);
            }


            return(true);
        }
 /// <summary>
 ///     Reigsters a new pre-deployment action for instances of the current service.
 /// </summary>
 /// <param name="action">An action to perform before deploying this service.</param>
 /// <returns>The current service manager.</returns>
 public IServiceManager RegisterSetupAction(IServiceAction action)
 {
     SetupActions.Add(action.Run);
     return(this);
 }