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