public override IdpeMessage Parse(bool onlyConstraints) { try { if (_IsHavingSqlQuery && !onlyConstraints) { ExtensionMethods.TraceInformation("Generating 'Generated' type '{0}', executing query '{1}'", ColumnName, Formula); bool isErrored = false; _Value = SqlClientManager.ExecuteQuery(ConnectionString, DatabaseType, Formula, ref isErrored); if (isErrored) { this._ParseResult = new IdpeMessage(IdpeMessageCodes.IDPE_GENERATED_TYPE_DATA_VALIDATION_FAILED); this._ParseResult.Message = string.Format(this._ParseResult.Message, PrintRowColPosition(), string.Empty, ColumnName); } } CheckConstraints(); } catch (Exception ex) { this._ParseResult = new IdpeMessage(IdpeMessageCodes.IDPE_GENERATED_TYPE_DATA_VALIDATION_FAILED); this._ParseResult.Message = string.Format(this._ParseResult.Message, PrintRowColPosition(), Formula, ColumnName); ExtensionMethods.TraceError(ex.ToString()); } _IsParsed = true; return(this._ParseResult); }
private GSearchResultCube FormatResultRule(GSearchResultCube result) { bool isErrored = false; string info = new SqlClientManager(ConnectionString, IdpeKeyTypes.ConnectionStringSqlCe) .ExecuteQuery("select name, rulesettype from idpedatasource ds inner join idperuledatasource rds on rds.datasourceid = ds.id where ruleid = " + result.ReferenceId , ref isErrored); if ((info == "NULL") || (string.IsNullOrEmpty(info))) { result.DataSource = "0-General"; result.Where = "Master"; } else { info = info.Replace("NULL", string.Empty); result.DataSource = info.Split("|".ToCharArray())[0]; string strRuleType = info.Split("|".ToCharArray())[1]; int ruleType = 0; if (int.TryParse(strRuleType, out ruleType)) { RuleSetTypes ruleSetTypes = (RuleSetTypes)ruleType; result.Param1 = ruleSetTypes.ToString(); result.Where = "Rule - " + ruleSetTypes.ToString(); } else { result.Where = "Unknown"; } } result.Value = string.Empty; return(result); }
public override IdpeMessage Parse(bool onlyConstraints) { try { if (!onlyConstraints) { _IsParsed = true; ExtensionMethods.TraceInformation("Validating 'Not Referenced' type '{0}' value '{1}', executing query '{1}' with '{2}'", Value, Formula, ConnectionString); if (SqlClientManager.CheckReferenceKey(ConnectionString, DatabaseType, Formula, Value)) { this._ParseResult = new IdpeMessage(IdpeMessageCodes.IDPE_NOT_REFERENCED_TYPE_DATA_RESULT_FOUND); this._ParseResult.Message = string.Format(this._ParseResult.Message, PrintRowColPosition(), Value, ColumnName); return(this._ParseResult); } else { this._ParseResult = new IdpeMessage(IdpeMessageCodes.IDPE_NOT_REFERENCED_TYPE_DATA_RESULT_NOT_FOUND); return(this._ParseResult); } } } catch (Exception ex) { ExtensionMethods.TraceError(ex.ToString()); } return(this._ParseResult); }
public List <GSearchResultCube> Search(string searchText, int dataSourceId = 0) { List <GSearchResultCube> results = new List <GSearchResultCube>(); DataTable table = new DataTable(); try { string sql = "select c.table_name, c.column_name "; sql += "from information_schema.columns as c "; sql += "inner join information_Schema.tables as t on t.table_name = c.table_name "; sql += "where (c.data_Type in ('char', 'nchar', 'varchar', 'nvarchar', 'text', 'ntext')) and (t.table_type = 'table') "; bool isErrored = false; table = new SqlClientManager(ConnectionString, IdpeKeyTypes.ConnectionStringSqlCe).ExecuteQueryAndGetDataTable(sql, ref isErrored); foreach (DataRow dr in table.Rows) { string dynSql = "select [" + dr["column_name"] + "] as Value"; if (dr["table_name"].ToString() == "IdpeAttribute") { dynSql += ", [AttributeId] as ReferenceId, '' as Param1, [Name] as Name"; } else if (dr["table_name"].ToString() == "IdpeKey") { dynSql += ", [KeyId] as ReferenceId, [Type] as Param1, [Name] as Name"; } else if (dr["table_name"].ToString() == "IdpeRule") { dynSql += ", [Id] as ReferenceId, [Name] as Param1, [Name] as Name"; } else { dynSql += ", '0' as ReferenceId, '' as Param1, '' as Name"; } dynSql += " from [" + dr["table_name"].ToString() + "]"; dynSql += " where [" + dr["column_name"].ToString() + "] like '%" + searchText + "%'"; DataTable result = new SqlClientManager(ConnectionString, IdpeKeyTypes.ConnectionStringSqlCe).ExecuteQueryAndGetDataTable(dynSql, ref isErrored); foreach (DataRow r in result.Rows) { results.Add(new GSearchResultCube(int.Parse(r["ReferenceId"].ToString()), r["Name"].ToString(), dr["table_name"].ToString(), dr["column_name"].ToString(), r["Value"].ToString(), r["Param1"].ToString())); } } return(FormatResults(results, dataSourceId)); } catch (Exception ex) { } return(results); }
internal AttributeParser(int dataSourceId, string dataSourceName, Column systemAttributes, Parameters parameters, SqlClientManager sqlClientManager, List <IdpeKey> applicationKeys) { this.DataSourceId = dataSourceId; this.DataSourceName = dataSourceName; this._SystemAttributes = systemAttributes; this._Parameters = parameters; this._SQLClientManager = sqlClientManager; this._DataSourceKeys = applicationKeys; //Lets format all SQL Queries with whatever available fields we have FormatAllSQLQueries(systemAttributes); //we are going to format again after parsing all data, we will have more available parameters }
public static DataTable LoadDataTable(this DataSource dataSource, string connectionStringKeyName, string query, ref string errorMessage, int timeOut = 5, bool silent = false) { IdpeKey connectionStringKey = dataSource.Keys.GetKey(connectionStringKeyName); if (connectionStringKey == null) { throw new Exception(string.Format("Can not load data table, the connection string was null! Connection string key name was '{0}'" , connectionStringKeyName)); } DataTable table = new SqlClientManager(string.Empty, IdpeKeyTypes.ConnectionStringSqlServer) .ExecuteQueryAndGetDataTable(connectionStringKey.Value, (IdpeKeyTypes)connectionStringKey.Type, query, ref errorMessage, timeOut, silent); return(table); }
public Parameters(int dataSourceId, string dataSourceName, IdpeKey generateParamFromDatabase, SqlClientManager sqlClientManager) { this._DataSourceId = dataSourceId; this._DataSourceName = dataSourceName; this._SQLClientManager = sqlClientManager; this._AttributeValuePair = new Dictionary <string, string>(); GenerateAttributeValuePair(); if (generateParamFromDatabase != null) { if (generateParamFromDatabase.Value.ParseBool()) { RetrieveFromDB(); } } }
private void BindNew() { DataTable dtColumns = new SqlClientManager(ConnectionKey.Value, (IdpeKeyTypes)ConnectionKey.Type).GetTableColumnNames(TargetTableName); if (dtColumns != null) { List <string> d = new List <string>(); foreach (DataRow row in dtColumns.Rows) { d.Add(row["Datatype"].ToString()); AttributeTypes aType = Eyedia.IDPE.Common.Utility.GetAttributeTypeFromDatabaseType(row["Datatype"].ToString()); ColumnMapInfo oneColumn = new ColumnMapInfo(this.DataSourceId, row["ColumnName"].ToString() + "|" + (int)aType + ","); this.Add(oneColumn); } } }
public static string Lookup(this DataSource dataSource, string connectionStringKeyName, string query) { IdpeKey connectionStringKey = dataSource.Keys.GetKey(connectionStringKeyName); if (connectionStringKey == null) { throw new Exception(string.Format("Can not perform lookup operation, the connection string was null! Connection string key name was '{0}'" , connectionStringKeyName)); } bool isErrored = false; string result = new SqlClientManager(string.Empty, IdpeKeyTypes.ConnectionStringSqlServer) .ExecuteQuery(connectionStringKey.Value, (IdpeKeyTypes)connectionStringKey.Type, query, ref isErrored); TraceInformation("Lookup:'{0}', Result:{1}", query, result); return(result); }
public SreType(string columnName, string value, AttributeTypes type, string formula, string minimum, string maximum, bool isAssociatedWithSystemRow, int recordPosition, SqlClientManager sqlClientManager, List <IdpeKey> dataSourceKeys) { _ConnectionStringKeyName = Constants.DefaultConnectionStringKeyName; SqlClientManager = sqlClientManager; _DataSourceKeys = dataSourceKeys; _ConnectionString = DataSourceKeys.GetDefaultConnectionString(); bool result = Init(columnName, value, type, formula, minimum, maximum, isAssociatedWithSystemRow, recordPosition); if (result) { _ParseResult = new IdpeMessage(IdpeMessageCodes.IDPE_SUCCESS); } else { _ParseResult = new IdpeMessage(IdpeMessageCodes.IDPE_FAILED); } }
private GSearchResultCube FormatResultAttribute(List <GSearchResultCube> formattedResults, GSearchResultCube result) { result.Type = ""; bool isErrored = false; DataTable table = new SqlClientManager(ConnectionString, IdpeKeyTypes.ConnectionStringSqlCe) .ExecuteQueryAndGetDataTable("select name, issystem from idpedatasource ds inner join idpeattributedatasource ads on ads.datasourceid = ds.id where attributeId = " + result.ReferenceId , ref isErrored); foreach (DataRow row in table.Rows) { GSearchResultCube cube = result; cube.DataSource = row[0].ToString(); cube.Where = row[1].ToString() == "True" ? "System Data Source" : "Data Source"; cube.Value = string.Empty; formattedResults.Add(cube); } return(result); }
public static int ExecuteNonQuery(this DataSource dataSource, string connectionStringKeyName, string query, bool silent = false) { IdpeKey connectionStringKey = dataSource.Keys.GetKey(connectionStringKeyName); if (connectionStringKey == null) { throw new Exception(string.Format("Can not execute non query, the connection string was null! Connection string key name was '{0}'" , connectionStringKeyName)); } int result = new SqlClientManager(string.Empty, IdpeKeyTypes.ConnectionStringSqlServer) .ExecuteNonQuery(query, silent, connectionStringKey.Value, (IdpeKeyTypes)connectionStringKey.Type); if (!silent) { TraceInformation("ExecuteNonQuery:'{0}', Result:{1}", query, result); } return(result); }
public SreCodeset(string columnName, string value, AttributeTypes type, string formula, string minimum, string maximum, bool isAssociatedWithSystemRow, int recordPosition, SqlClientManager sqlClientManager, List <IdpeKey> dataSourceKeys) : base(columnName, value, type, formula, minimum, maximum, isAssociatedWithSystemRow, recordPosition, sqlClientManager, dataSourceKeys) { //prevent null error; _ValueEnumValue = string.Empty; _ReferenceKey = string.Empty; }
public static SreType GetInstance(string columnName, string value, string type, string formula, string minimum, string maximum, bool isAssociatedWithSystemRow, int recordPosition, SqlClientManager sqlClientManager, List <IdpeKey> dataSourceKeys) { AttributeTypes thisType = (AttributeTypes)Enum.Parse(typeof(AttributeTypes), type, true); switch (type.ToUpper()) { case "INT": return(new SreInt(columnName, value, thisType, formula, minimum, maximum, isAssociatedWithSystemRow, recordPosition)); case "BIGINT": return(new SreBigInt(columnName, value, thisType, formula, minimum, maximum, isAssociatedWithSystemRow, recordPosition)); case "DECIMAL": return(new SreDecimal(columnName, value, thisType, formula, minimum, maximum, isAssociatedWithSystemRow, recordPosition)); case "BIT": return(new SreBit(columnName, value, thisType, formula, minimum, maximum, isAssociatedWithSystemRow, recordPosition)); case "STRING": return(new SreString(columnName, value, thisType, formula, minimum, maximum, isAssociatedWithSystemRow, recordPosition)); case "DATETIME": return(new SreDateTime(columnName, value, thisType, formula, minimum, maximum, isAssociatedWithSystemRow, recordPosition)); case "CODESET": return(new SreCodeset(columnName, value, thisType, formula, minimum, maximum, isAssociatedWithSystemRow, recordPosition, sqlClientManager, dataSourceKeys)); case "REFERENCED": return(new SreReferenced(columnName, value, thisType, formula, minimum, maximum, isAssociatedWithSystemRow, recordPosition, sqlClientManager, dataSourceKeys)); case "NOTREFERENCED": return(new SreNotReferenced(columnName, value, thisType, formula, minimum, maximum, isAssociatedWithSystemRow, recordPosition, sqlClientManager, dataSourceKeys)); case "GENERATED": return(new SreGenerated(columnName, value, thisType, formula, minimum, maximum, isAssociatedWithSystemRow, recordPosition, sqlClientManager, dataSourceKeys)); default: return(new SreUnknown(columnName, value, thisType, formula, minimum, maximum, recordPosition)); } }
public SreGenerated(string columnName, string value, AttributeTypes type, string formula, string minimum, string maximum, bool isAssociatedWithSystemRow, int recordPosition, SqlClientManager sqlClientManager, List <IdpeKey> dataSourceKeys) : base(columnName, value, type, formula, minimum, maximum, isAssociatedWithSystemRow, recordPosition, sqlClientManager, dataSourceKeys) { if ((formula.Length >= 5) && (formula.Substring(0, 5).Equals("=SQL("))) { _IsHavingSqlQuery = true; } if ((formula.Length >= 11) && (formula.Substring(0, 11).Equals("=STOREPROC("))) { _IsHavingSqlQuery = true; } }
public SreNotReferenced(string columnName, string value, AttributeTypes type, string formula, string minimum, string maximum, bool isAssociatedWithSystemRow, int recordPosition, SqlClientManager sqlClientManager, List <IdpeKey> dataSourceKeys) : base(columnName, value, type, formula, minimum, maximum, isAssociatedWithSystemRow, recordPosition, sqlClientManager, dataSourceKeys) { _IsHavingSqlQuery = true; }
private void createNewRepositoryToolStripMenuItem_Click(object sender, EventArgs e) { List <string> sdfFiles = new List <string>(Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.sdf")); if (sdfFiles.Count == 0) { MessageBox.Show("No SDF file found!", "Maintenance - Create New Repository", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { InputBox iBox = new InputBox("new_sre", "New repository name", "New Repository", this.Icon); if (iBox.ShowDialog() == DialogResult.OK) { if (string.IsNullOrEmpty(iBox.TheInput)) { MessageBox.Show("Repository name cannot be blank!", "Maintenance - Create New Repository", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } } string newFile = sdfFiles[0].Replace(Path.GetFileNameWithoutExtension(sdfFiles[0]), iBox.TheInput); if (File.Exists(newFile)) { if (MessageBox.Show("new_sre.sdf file already exists! Do you want to overwrite it?", "Maintenance - Create New Repository", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { new FileUtility().Delete(newFile); } else { return; } } new Eyedia.Core.FileUtility().FileCopy(sdfFiles[0], newFile, false); string cleanScripts = string.Empty; using (Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("Eyedia.IDPE.Interface.EmbeddedResources.CleanTables.txt")) using (StreamReader reader = new StreamReader(stream)) { cleanScripts = reader.ReadToEnd(); } string newcs = string.Format("Data Source='{0}';password=acc3s$", newFile); List <string> scripts = new List <string>(cleanScripts.Split(Environment.NewLine.ToCharArray())).RemoveEmptyStrings(); SqlClientManager sqlClientManager = new SqlClientManager(newcs, IdpeKeyTypes.ConnectionStringSqlCe); foreach (string script in scripts) { sqlClientManager.ExecuteNonQuery(script); } DataAccessLayer.CompactSqlCe(newcs); if (MessageBox.Show(newFile + " created successfully! Do you want to point to new repository?", "Maintenance - Create New Repository", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { new Manager(newcs).InsertSystemObjects(); System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); config.ConnectionStrings.ConnectionStrings["cs"].ConnectionString = newcs; config.Save(ConfigurationSaveMode.Modified); string idpe = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "idpe.exe"); string srewoa = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "idpewoa.exe"); if (File.Exists(idpe)) { System.Configuration.Configuration sreConfig = ConfigurationManager.OpenExeConfiguration(idpe); config.ConnectionStrings.ConnectionStrings["cs"].ConnectionString = newcs; config.Save(ConfigurationSaveMode.Modified); } if (File.Exists(srewoa)) { System.Configuration.Configuration srewoaConfig = ConfigurationManager.OpenExeConfiguration(srewoa); config.ConnectionStrings.ConnectionStrings["cs"].ConnectionString = newcs; config.Save(ConfigurationSaveMode.Modified); } System.Diagnostics.Process.Start(Application.ExecutablePath); Environment.Exit(0); } } }