예제 #1
0
        private static void FillVariables(IEnumerable <XmlElement> sections, Dictionary <string, string> variables, Instance instance, IPipelineController controller)
        {
            var @params = sections.SingleOrDefault(s => s.Name.EqualsIgnoreCase("params"));

            if (@params != null)
            {
                var children = @params.ChildNodes.OfType <XmlElement>();
                foreach (XmlElement param in children)
                {
                    var variableName = param.GetAttribute("name");
                    if (variables.ContainsKey(variableName))
                    {
                        continue;
                    }

                    var variableTitle        = param.GetAttribute("title");
                    var defaultVariableValue = param.GetAttribute("defaultValue");
                    var mode          = param.GetAttribute("mode");
                    var options       = param.GetAttribute("options");
                    var typeName      = param.GetAttribute("getOptionsType");
                    var methodName    = param.GetAttribute("getOptionsMethod");
                    var multiselect   = mode.EqualsIgnoreCase("multiselect");
                    var variableValue = controller != null
            ? (multiselect || mode.Equals("select")
              ? controller.Select(variableTitle, !string.IsNullOrEmpty(options)
                ? options.Split('|')
                : GetOptions(typeName, methodName, instance), multiselect, defaultVariableValue)
              : controller.Ask(variableTitle, defaultVariableValue))
            : defaultVariableValue;
                    variables.Add(variableName, variableValue);
                }
            }
        }
예제 #2
0
        private static string GetDatabasesFolder(Instance instance, SqlConnectionStringBuilder connectionString, IPipelineController controller)
        {
            string   databasesFolder;
            Database mainDatabase = GetMainDatabase(instance, connectionString);

            if (mainDatabase == null)
            {
                while (true)
                {
                    databasesFolder = controller.Ask(
                        "Can't find any local database of the " + instance +
                        " instance to detect the Databases folder. Please specify it manually:",
                        instance.RootPath.TrimEnd('\\') + "\\Databases");
                    if (string.IsNullOrEmpty(databasesFolder))
                    {
                        if (controller.Confirm("You didn't input anything - would you like to terminate this installation?"))
                        {
                            throw new Exception("Aborted.");
                        }

                        continue;
                    }

                    if (!FileSystem.FileSystem.Local.Directory.Exists(databasesFolder))
                    {
                        if (controller.Confirm("The " + databasesFolder + " doesn't exist. Would you like to create the folder?"))
                        {
                            FileSystem.FileSystem.Local.Directory.CreateDirectory(databasesFolder);
                            break;
                        }
                    }
                    else
                    {
                        break;
                    }
                }
            }
            else
            {
                databasesFolder = Path.GetDirectoryName(mainDatabase.FileName).EmptyToNull();
            }

            return(databasesFolder);
        }
        private static string GetDatabasesFolder(Instance instance, SqlConnectionStringBuilder connectionString, IPipelineController controller)
        {
            string databasesFolder;
              Database mainDatabase = GetMainDatabase(instance, connectionString);

              if (mainDatabase == null)
              {
            while (true)
            {
              databasesFolder = controller.Ask(
            "Can't find any local database of the " + instance +
            " instance to detect the Databases folder. Please specify it manually:",
            instance.RootPath.TrimEnd('\\') + "\\Databases");
              if (string.IsNullOrEmpty(databasesFolder))
              {
            if (controller.Confirm("You didn't input anything - would you like to terminate this installation?"))
            {
              throw new Exception("Aborted.");
            }

            continue;
              }

              if (!FileSystem.FileSystem.Local.Directory.Exists(databasesFolder))
              {
            if (controller.Confirm("The " + databasesFolder + " doesn't exist. Would you like to create the folder?"))
            {
              FileSystem.FileSystem.Local.Directory.CreateDirectory(databasesFolder);
              break;
            }
              }
              else
              {
            break;
              }
            }
              }
              else
              {
            databasesFolder = Path.GetDirectoryName(mainDatabase.FileName).EmptyToNull();
              }

              return databasesFolder;
        }
        private static void FillVariables(IEnumerable<XmlElement> sections, Dictionary<string, string> variables, Instance instance, IPipelineController controller)
        {
            var @params = sections.SingleOrDefault(s => s.Name.EqualsIgnoreCase("params"));
              if (@params != null)
              {
            var children = @params.ChildNodes.OfType<XmlElement>();
            foreach (XmlElement param in children)
            {
              string variableName = param.GetAttribute("name");
              if (variables.ContainsKey(variableName))
              {
            continue;
              }

              string variableTitle = param.GetAttribute("title");
              string defaultVariableValue = param.GetAttribute("defaultValue");
              string mode = param.GetAttribute("mode");
              var options = param.GetAttribute("options");
              var typeName = param.GetAttribute("getOptionsType");
              var methodName = param.GetAttribute("getOptionsMethod");
              var multiselect = mode.EqualsIgnoreCase("multiselect");
              string variableValue = controller != null
            ? (multiselect || mode.Equals("select")
              ? controller.Select(variableTitle, !string.IsNullOrEmpty(options)
                ? options.Split('|')
                : GetOptions(typeName, methodName, instance), multiselect, defaultVariableValue)
              : controller.Ask(variableTitle, defaultVariableValue))
            : defaultVariableValue;
              variables.Add(variableName, variableValue);
            }
              }
        }