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); } } }
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); } } }