Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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();
                }
            }
        }
Ejemplo n.º 8
0
        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);
                }
            }
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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);
            }
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
 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;
 }
Ejemplo n.º 14
0
        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));
            }
        }
Ejemplo n.º 15
0
        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;
            }
        }
Ejemplo n.º 16
0
 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;
 }
Ejemplo n.º 17
0
        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);
                }
            }
        }