Exemple #1
0
        /// <inheritDoc />
        protected override string BuildConnectionString(ReadOnlySpan <char> dsn, string user, string password, PhpArray options)
        {
            var csb = new MySqlConnectionStringBuilder();

            // parse and validate the datasource string:
            DataSourceString.ParseNameValue(dsn, csb, (_csb, name, value) =>
            {
                // unknown option aliases:
                if (name.Equals("dbname", StringComparison.OrdinalIgnoreCase))
                {
                    name = "Database";
                }

                //
                _csb[name] = value;
            });

            //
            if (!string.IsNullOrEmpty(user))
            {
                csb.UserID = user;
            }
            if (!string.IsNullOrEmpty(password))
            {
                csb.Password = password;
            }

            if (options != null && options.Count != 0)
            {
                csb.Pooling = options[PDO.ATTR_PERSISTENT].ToBoolean();
            }

            //
            return(csb.ConnectionString);
        }
Exemple #2
0
        public override DataSourceString Execute(DatabaseUri databaseUri, BuildSourceField field, DataSourceString dataSource)
        {
            Assert.ArgumentNotNull(databaseUri, nameof(databaseUri));
            Assert.ArgumentNotNull(field, nameof(field));
            Assert.ArgumentNotNull(dataSource, nameof(dataSource));

            var propertyType = dataSource["propertytype"] ?? string.Empty;

            var dialog = new PropertyTypeDialog(propertyType);

            if (AppHost.Shell.ShowDialog(dialog) != true)
            {
                return(null);
            }

            propertyType = dialog.PropertyType;

            SetDataSource(dataSource);
            if (string.IsNullOrEmpty(propertyType))
            {
                dataSource.Remove("propertytype");
            }
            else
            {
                dataSource["propertytype"] = propertyType;
            }

            return(dataSource);
        }
Exemple #3
0
        public override DataSourceString Execute(DatabaseUri databaseUri, BuildSourceField field, DataSourceString dataSource)
        {
            Assert.ArgumentNotNull(databaseUri, nameof(databaseUri));
            Assert.ArgumentNotNull(field, nameof(field));
            Assert.ArgumentNotNull(dataSource, nameof(dataSource));

            dataSource["hideactions"] = @"true";

            return(dataSource);
        }
        public override DataSourceString Execute(DatabaseUri databaseUri, BuildSourceField field, DataSourceString dataSource)
        {
            Assert.ArgumentNotNull(databaseUri, nameof(databaseUri));
            Assert.ArgumentNotNull(field, nameof(field));
            Assert.ArgumentNotNull(dataSource, nameof(dataSource));

            var key = GetKey();

            var value = dataSource[key] ?? string.Empty;

            var result = AppHost.Prompt(GetText(), "Data Source Parameter", value);

            if (result == null)
            {
                return(null);
            }

            SetDataSource(dataSource);
            dataSource[key] = result;

            return(dataSource);
        }
        public override DataSourceString Execute(DatabaseUri databaseUri, BuildSourceField field, DataSourceString dataSource)
        {
            Assert.ArgumentNotNull(databaseUri, nameof(databaseUri));
            Assert.ArgumentNotNull(field, nameof(field));
            Assert.ArgumentNotNull(dataSource, nameof(dataSource));

            var itemId = new ItemId(DatabaseTreeViewItem.RootItemGuid);

            var value = dataSource["datasource"];

            if (!string.IsNullOrEmpty(value))
            {
                Guid guid;
                if (Guid.TryParse(value, out guid))
                {
                    itemId = new ItemId(guid);
                }
            }

            var itemUri = new ItemUri(databaseUri, itemId);

            var dialog = new SelectItemDialog();

            dialog.Initialize(Resources.Browse, itemUri);
            if (AppHost.Shell.ShowDialog(dialog) != true)
            {
                return(null);
            }

            dataSource.Path          = string.Empty;
            dataSource["datasource"] = dialog.SelectedItemUri.ItemId.ToString();

            return(dataSource);
        }
        public override DataSourceString Execute(DatabaseUri databaseUri, BuildSourceField field, DataSourceString dataSource)
        {
            Assert.ArgumentNotNull(databaseUri, nameof(databaseUri));
            Assert.ArgumentNotNull(field, nameof(field));
            Assert.ArgumentNotNull(dataSource, nameof(dataSource));

            var query = dataSource.Path;

            if (query.StartsWith(@"query:", StringComparison.InvariantCultureIgnoreCase))
            {
                query = query.Mid(6);
            }

            var dialog = new BuildQueryDialog(query, CustomValidationType.Query);

            dialog.Title = "Build Query";
            if (AppHost.Shell.ShowDialog(dialog) != true)
            {
                return(null);
            }

            dataSource.Path = @"query:" + dialog.Text;
            dataSource.Parameters.Clear();

            return(dataSource);
        }
        public override DataSourceString Execute(DatabaseUri databaseUri, BuildSourceField field, DataSourceString dataSource)
        {
            Assert.ArgumentNotNull(databaseUri, nameof(databaseUri));
            Assert.ArgumentNotNull(field, nameof(field));
            Assert.ArgumentNotNull(dataSource, nameof(dataSource));

            var dialog = new SelectDatabaseDialog
            {
                SelectedDatabaseUri = databaseUri
            };

            if (!dialog.ShowDialog())
            {
                return(null);
            }

            var d = dialog.SelectedDatabaseUri;

            if (d == DatabaseUri.Empty)
            {
                return(null);
            }

            SetDataSource(dataSource);
            dataSource["databasename"] = d.DatabaseName.ToString();

            return(dataSource);
        }
        public override DataSourceString Execute(DatabaseUri databaseUri, BuildSourceField field, DataSourceString dataSource)
        {
            Assert.ArgumentNotNull(databaseUri, nameof(databaseUri));
            Assert.ArgumentNotNull(field, nameof(field));
            Assert.ArgumentNotNull(dataSource, nameof(dataSource));

            var itemId = new ItemId(DatabaseTreeViewItem.RootItemGuid);

            var key = GetKey();

            var value = dataSource[key] ?? string.Empty;
            var n     = value.IndexOf(@"|", StringComparison.Ordinal);

            if (n >= 0)
            {
                value = value.Left(n);
            }

            if (!string.IsNullOrEmpty(value))
            {
                Guid guid;
                if (Guid.TryParse(value, out guid))
                {
                    itemId = new ItemId(guid);
                }
            }

            var itemUri = new ItemUri(databaseUri, itemId);

            var dialog = new SelectItemDialog
            {
                AllowMultipleSelection = true
            };

            dialog.Initialize(Resources.Browse, itemUri);
            if (AppHost.Shell.ShowDialog(dialog) != true)
            {
                return(null);
            }

            value = string.Empty;

            foreach (var name in dialog.SelectedItemNames)
            {
                if (!string.IsNullOrEmpty(value))
                {
                    value += @"|";
                }

                value += name;
            }

            SetDataSource(dataSource);
            dataSource[key] = value;

            return(dataSource);
        }
        public override DataSourceString Execute(DatabaseUri databaseUri, BuildSourceField field, DataSourceString dataSource)
        {
            Assert.ArgumentNotNull(databaseUri, nameof(databaseUri));
            Assert.ArgumentNotNull(field, nameof(field));
            Assert.ArgumentNotNull(dataSource, nameof(dataSource));

            var bindMode = dataSource["bindmode"] ?? string.Empty;

            var dialog = new BindModeDialog(bindMode);

            if (AppHost.Shell.ShowDialog(dialog) != true)
            {
                return(null);
            }

            bindMode = dialog.BindMode;

            SetDataSource(dataSource);
            if (string.IsNullOrEmpty(bindMode))
            {
                dataSource.Remove("bindmode");
            }
            else
            {
                dataSource["bindmode"] = bindMode;
            }

            return(dataSource);
        }
Exemple #10
0
        public override DataSourceString Execute(DatabaseUri databaseUri, BuildSourceField field, DataSourceString dataSource)
        {
            Assert.ArgumentNotNull(databaseUri, nameof(databaseUri));
            Assert.ArgumentNotNull(field, nameof(field));
            Assert.ArgumentNotNull(dataSource, nameof(dataSource));

            dataSource["allowmultipleselection"] = @"yes";

            return(dataSource);
        }