Exemplo n.º 1
0
        private dynamic ParseDelete(string statement)
        {
            dynamic delete = new ExpandoObject();

            delete.Type = "DELETE";
            if (!statement.Contains("WHERE"))
            {
                var tableName = SubstringExtensions.Between(statement, "DELETE FROM", ";", true);
                delete.Table = tableName;
            }
            else
            {
                var tableName = SubstringExtensions.Between(statement, "DELETE FROM", "WHERE", true);
                delete.Table = tableName;

                dynamic wherExpandoObject = new ExpandoObject();
                var     whereText         = SubstringExtensions.Between(statement, "WHERE", ";", true);
                int     counter           = 0;
                foreach (var oper in ComparisonOperators)
                {
                    if (whereText.Contains(oper))
                    {
                        dynamic critera = new ExpandoObject();
                        critera.Left     = SubstringExtensions.Before(whereText, oper);
                        critera.Operator = oper;
                        critera.Right    = SubstringExtensions.After(whereText, oper);
                        AddProperty(wherExpandoObject, counter++.ToString(), critera);
                    }
                }
                AddProperty(delete, "Where", wherExpandoObject);
            }

            return(delete);
        }
Exemplo n.º 2
0
        private dynamic ParseInsert(string statement)
        {
            dynamic insert = new ExpandoObject();

            insert.Type = "INSERT";
            var tableName = SubstringExtensions.Between(statement, "INSERT INTO", "(", true);

            insert.Table = tableName.Trim();
            var columnstText = SubstringExtensions.Between(statement, "(", ")", true);
            var columnsArray = columnstText.Split(',');

            var     valuesText  = SubstringExtensions.Between(statement, "VALUES (", ");", true);
            var     valuesArray = valuesText.Split(',');
            dynamic columns     = new ExpandoObject();

            //Statement validation
            if (string.IsNullOrEmpty(tableName) || string.IsNullOrWhiteSpace(tableName) || (columnsArray.Length != valuesArray.Length) ||
                (columnsArray.Length == 0) || (valuesArray.Length == 0))
            {
                insert.Error = "Invalid statement";
                return(insert);
            }
            for (int i = 0; i < columnsArray.Length; i++)
            {
                dynamic column = new ExpandoObject();
                column.Name  = columnsArray[i];
                column.Value = valuesArray[i];
                AddProperty(columns, i.ToString(), column);
            }

            AddProperty(insert, "Columns", columns);

            return(insert);
        }
Exemplo n.º 3
0
        private dynamic ParseUse(string statement)
        {
            dynamic use = new ExpandoObject();

            use.Type = "USE";
            var databaseName = SubstringExtensions.Between(statement, "USE", ";", true);

            use.Database_Name = databaseName;
            return(use);
        }
Exemplo n.º 4
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (vars.agreeeula == true)
            {
                try
                {
                    if (textBox1.Text.StartsWith(@"http://"))
                    {
                        textBox1.Text = textBox1.Text.Replace(@"http://", "");
                    }
                    if (textBox1.Text.StartsWith(@"https://"))
                    {
                        textBox1.Text = textBox1.Text.Replace(@"https://", "");
                    }
                    if (textBox1.Text.StartsWith(@"ssh://"))
                    {
                        textBox1.Text = textBox1.Text.Replace(@"ssh://", "");
                    }
                    if (textBox1.Text.StartsWith(@"www"))
                    {
                        textBox1.Text = textBox1.Text.Replace(@"www", "");
                    }
                    WebRequest   req      = WebRequest.Create(@"http://" + textBox1.Text + @"/config.txt");
                    WebResponse  response = req.GetResponse();
                    Stream       stream   = response.GetResponseStream();
                    StreamReader reader   = new StreamReader(stream);
                    config = reader.ReadToEnd();
                    if (!(config == ""))
                    {
                        panel1.Visible   = true;
                        button1.Enabled  = false;
                        textBox1.Enabled = false;

                        if (Boolean.Parse(SubstringExtensions.Between(config, "<synclibrary>", @"</synclibrary>")))
                        {
                            checkBox1.Checked = true;
                        }
                        else
                        {
                            checkBox1.Checked = false;
                            checkBox1.Enabled = false;
                        }
                        if (Boolean.Parse(SubstringExtensions.Between(config, "<syncmedia>", @"</syncmedia>")))
                        {
                            checkBox2.Checked = true;
                        }
                        else
                        {
                            checkBox2.Checked = false;
                            checkBox2.Enabled = false;
                        }
                        if (Boolean.Parse(SubstringExtensions.Between(config, "<syncpref>", @"</syncpref>")))
                        {
                            checkBox3.Checked = true;
                        }
                        else
                        {
                            checkBox3.Checked = false;
                            checkBox3.Enabled = false;
                        }
                        if (Boolean.Parse(SubstringExtensions.Between(config, "<automode>", @"</automode>")))
                        {
                            checkBox4.Checked = true;
                        }
                        else
                        {
                            checkBox4.Checked = false;
                            checkBox4.Enabled = false;
                        }

                        vars.libraryrepo = SubstringExtensions.Between(config, "<libraryrepo>", @"</libraryrepo>");
                        vars.mediarepo   = SubstringExtensions.Between(config, "<mediarepo>", @"</mediarepo>");
                        vars.prefrepo    = SubstringExtensions.Between(config, "<prefrepo>", @"</prefrepo>");

                        vars.dns = SubstringExtensions.Between(config, "<dns>", @"</dns>");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("There was an error connecting to the server.  Please check the URL and your connection and try again.  Technical details: " + Environment.NewLine + ex.Message.ToString());
                }
            }
            else
            {
                MessageBox.Show("Please agree to the EULA first.");
            }
        }
Exemplo n.º 5
0
        private dynamic ParseSelect(string statement)
        {
            dynamic select = new ExpandoObject();

            select.Type = "SELECT";
            dynamic columns = new ExpandoObject();
            //Split statement to words
            var words       = SubstringExtensions.Between(statement, "SELECT", "FROM").Trim().Replace(" ", "");
            var columnNames = words.Split(',');

            if (string.IsNullOrWhiteSpace(words) || columnNames == null || columnNames.Length == 0 ||
                !statement.Contains("FROM"))
            {
                select.Error = "Invalid statement";
                return(select);
            }
            //Column names
            foreach (var colName in columnNames)
            {
                dynamic col1 = new ExpandoObject();
                col1.Type = "Column";
                col1.Name = colName.Replace(",", "").ToLower();
                AddProperty(columns, columnNames.IndexOf(colName).ToString(), col1);
            }
            AddProperty(select, "Columns", columns);

            //Table name and aliases
            dynamic table = new ExpandoObject();
            var     tableNameAndAliases = SubstringExtensions.Between(statement, "FROM", "WHERE").Trim();

            if (tableNameAndAliases.Contains("AS"))
            {
                var tableName = SubstringExtensions.Between(statement, "FROM", "AS").Trim();
                var alises    = SubstringExtensions.Between(statement, "AS", "WHERE").Trim();

                table.Type   = "Table";
                table.Name   = tableName.ToLower();
                table.Alises = alises.ToLower();
            }
            else
            {
                var tableName = SubstringExtensions.Between(statement, "FROM", "WHERE").Trim();
                table.Type = "Table";
                table.Name = tableName.ToLower();
            }
            AddProperty(select, "From", table);

            //Criteria without order by
            if (statement.Contains("WHERE") && !statement.Contains("ORDER BY"))
            {
                dynamic where = new ExpandoObject();
                var wherePhrase = SubstringExtensions.Between(statement, "WHERE", ";").Trim();
                var whereArray  = wherePhrase.Split(' ');
                int counter     = 0;
                foreach (var oper in ComparisonOperators)
                {
                    for (int i = 0; i < whereArray.Length; i++)
                    {
                        if (oper == whereArray[i])
                        {
                            dynamic crit = new ExpandoObject();
                            crit.Left     = whereArray[i - 1];
                            crit.Operator = oper;
                            crit.Right    = SubstringExtensions.After(wherePhrase, oper).Trim();

                            AddProperty(where, counter++.ToString(), crit);
                        }
                    }
                }
                if (tableNameAndAliases.Contains("AS"))
                {
                    var tableName = SubstringExtensions.Between(statement, "FROM", "AS").Trim();
                    var alises    = SubstringExtensions.Between(statement, "AS", "WHERE").Trim();

                    table.Type   = "Table";
                    table.Name   = tableName.ToLower();
                    table.Alises = alises.ToLower();
                }
                else
                {
                    var tableName = SubstringExtensions.Between(statement, "FROM", "WHERE").Trim();
                    table.Type = "Table";
                    table.Name = tableName.ToLower();
                }

                AddProperty(select, "Where", where);
            }
            else
            if (statement.Contains("WHERE") && statement.Contains("ORDER BY"))
            {
                dynamic where = new ExpandoObject();
                var wherePhrase = SubstringExtensions.Between(statement, "WHERE", "ORDER BY").Trim();
                var whereArray  = wherePhrase.Split(' ');
                int counter     = 0;
                foreach (var oper in ComparisonOperators)
                {
                    for (int i = 0; i < whereArray.Length; i++)
                    {
                        if (oper == whereArray[i])
                        {
                            dynamic crit = new ExpandoObject();
                            crit.Left     = whereArray[i - 1];
                            crit.Operator = oper;
                            crit.Right    = SubstringExtensions.After(wherePhrase, oper).Trim();

                            AddProperty(where, counter++.ToString(), crit);
                        }
                    }
                }
                if (tableNameAndAliases.Contains("AS"))
                {
                    var tableName = SubstringExtensions.Between(statement, "FROM", "AS").Trim();
                    var alises    = SubstringExtensions.Between(statement, "AS", "WHERE").Trim();

                    table.Type   = "Table";
                    table.Name   = tableName.ToLower();
                    table.Alises = alises.ToLower();
                }
                else
                {
                    var tableName = SubstringExtensions.Between(statement, "FROM", "WHERE").Trim();
                    table.Type = "Table";
                    table.Name = tableName.ToLower();
                }

                AddProperty(select, "Where", where);

                //Order by
                var     orderPhrase = SubstringExtensions.Between(statement, "ORDER BY", ";").Trim();
                dynamic orderBy     = new ExpandoObject();
                orderBy.Type   = "Order by";
                orderBy.column = orderPhrase;

                AddProperty(select, "Where", orderBy);
            }


            return(select);
        }