Example #1
0
        /// <summary>
        /// Update table values using instance as update source and comparator to find which instaces to update
        /// </summary>
        /// <param name="connection">Connection Parameter</param>
        /// <param name="transaction">Transaction Parameter</param>
        /// <param name="instance">Instance to update with</param>
        /// <param name="comparator">Instance for which we will create the where clause </param>
        /// <returns></returns>
        public static int UpdateValue(DbConnection connection, DbTransaction transaction, object instance, object comparator)
        {
            InstanceFilterWrapper instanceWrapper   = InstanceFilterWrapper.Wrap(instance);
            InstanceFilterWrapper comparatorWrapper = InstanceFilterWrapper.Wrap(comparator);

            return(UpdateValue(connection, transaction, instanceWrapper, comparatorWrapper));
        }
Example #2
0
        /// <example>
        /// Class whereInstance = CSV2Core_MySQL.Support.SQLClassFilter.GetDefaultInstance[Class]();
        /// whereInstance.Parameter1 = NevValue;
        /// whereInstance.Parameter2 = ...
        /// InstanceFilterWrapper wrapper = InstanceFilterWrapper.Wrap(whereInstance,[optinal override params]);
        /// int result = CSV2Core_MySQL.Support.SQLClassFilter.Delete(Connection, Transaction, wrapper);
        /// </example>
        /// <param name="connection">Connection parameter</param>
        /// <param name="transaction">Transaction parameter</param>
        /// <param name="wrapper">Instance for which to delete</param>
        /// <returns></returns>
        public static int Delete(DbConnection connection, DbTransaction transaction, InstanceFilterWrapper wrapper)
        {
            try
            {
                var initializationSnapshot = GetFieldSnapshot(GetDefaultInstance(wrapper.Instance.GetType()));
                var currentSnapshot        = GetFieldSnapshot(wrapper.Instance);
                var diff = Diff(initializationSnapshot, currentSnapshot, wrapper.OverrideFields);

                if (wrapper == null || diff.Count == 0)
                {
                    return(-1);
                }


                diff.Add("IsDeleted", false);

                string whereClause = CreateWhereClause(diff);
                string tableName   = GetTableName(wrapper.Instance);


                string query = String.Format("UPDATE {0} SET IsDeleted = 1 WHERE {1}", tableName, whereClause);

                DbCommand command = connection.CreateCommand();
                command.CommandText = query;
                command.Transaction = transaction;

                foreach (var key in diff.Keys)
                {
                    CSV2Core_MySQL.Support.DBSQLSupport.SetParameter(command, key, diff[key]);
                }


                return(command.ExecuteNonQuery());
            }
            catch (Exception ex)
            {
                //CSV2Core.Logging.DLSystemLog.add(ex);
                return(-1);
            }
        }
Example #3
0
        /// <example>
        /// Class instance = CSV2Core_MySQL.Support.SQLClassFilter.GetDefaultInstance[Class]();
        /// instance.Parameter1 = NevValue;
        /// instance.Parameter2 = ...
        /// InstanceFilterWrapper wrapper = InstanceFilterWrapper.Wrap(instance,[optinal override params]);
        /// int count = CSV2Core_MySQL.Support.SQLClassFilter.Count(Connection, Transaction, wrapper);
        /// </example>
        /// <param name="connection">Connection parameter</param>
        /// <param name="transaction">Transaction parameter</param>
        /// <param name="wrapper">InstanceWrapper for which to delete</param>
        /// <returns></returns>
        public static int Count(DbConnection connection, DbTransaction transaction, InstanceFilterWrapper wrapper)
        {
            try
            {
                var initializationSnapshot = GetFieldSnapshot(GetDefaultInstance(wrapper.Instance.GetType()));
                var currentSnapshot        = GetFieldSnapshot(wrapper.Instance);
                var diff = Diff(initializationSnapshot, currentSnapshot, wrapper.OverrideFields);

                if (wrapper == null || diff.Count == 0)
                {
                    return(0);
                }

                string whereClause = CreateWhereClause(diff);
                string tableName   = GetTableName(wrapper.Instance);

                string query = String.Format("SELECT COUNT(*) as Count FROM {0} WHERE {1}", tableName, whereClause);

                DbCommand command = connection.CreateCommand();
                command.CommandText = query;
                command.Transaction = transaction;

                foreach (var key in diff.Keys)
                {
                    CSV2Core_MySQL.Support.DBSQLSupport.SetParameter(command, key, diff[key]);
                }

                var reader = command.ExecuteReader();
                reader.Read();
                int resultCount = reader.GetInt32(0);
                reader.Close();
                return(resultCount);
            }
            catch (Exception ex)
            {
                //CSV2Core.Logging.DLSystemLog.add(ex);
                return(0);
            }
        }
Example #4
0
        /// <summary>
        /// Update specific ORM class with specific values
        /// </summary>
        /// <example>
        /// Class instance = CSV2Core_MySQL.Support.SQLClassFilter.GetDefaultInstance[Class]();
        /// instance.Parameter1 = NevValue;
        /// InstanceFilterWrapper instanceWrap = InstanceFilterWrapper.Wrap(instance,[optinal override params]);
        /// int result = CSV2Core_MySQL.Support.SQLClassFilter.UpdateValue(Connection, Transaction, instanceWrap, comparatorWrap);
        /// </example>
        /// <param name="connection">Connection parameter</param>
        /// <param name="transaction">Transaction parameter</param>
        /// <param name="instance">Instance to update with</param>
        /// <param name="comparator">Instance for which we will create the where clause </param>
        /// <returns></returns>
        public static int UpdateValue(DbConnection connection, DbTransaction transaction, InstanceFilterWrapper instance, InstanceFilterWrapper comparator)
        {
            try
            {
                var initializationSnapshot = GetFieldSnapshot(GetDefaultInstance(comparator.Instance.GetType()));
                var currentWhereSnapshot   = GetFieldSnapshot(comparator.Instance);
                var diffWhere = Diff(initializationSnapshot, currentWhereSnapshot, comparator.OverrideFields);

                if (comparator == null || diffWhere.Count == 0)
                {
                    return(-1);
                }

                diffWhere.Add("IsDeleted", false);

                string whereClause = CreateWhereClause(diffWhere, "P");
                string tableName   = GetTableName(comparator.Instance);

                var currentUpdateSnapshot = GetFieldSnapshot(instance.Instance);
                var diffUpdate            = Diff(initializationSnapshot, currentUpdateSnapshot, instance.OverrideFields);

                if (instance == null || diffUpdate.Count == 0)
                {
                    return(-1);
                }

                string updateClause = CreateUpdateClause(diffUpdate);

                string query = String.Format("UPDATE {0} SET {1} WHERE {2}", tableName, updateClause, whereClause);

                DbCommand command = connection.CreateCommand();
                command.CommandText = query;
                command.Transaction = transaction;

                foreach (var key in diffUpdate.Keys)
                {
                    CSV2Core_MySQL.Support.DBSQLSupport.SetParameter(command, key, diffUpdate[key]);
                }

                foreach (var key in diffWhere.Keys)
                {
                    CSV2Core_MySQL.Support.DBSQLSupport.SetParameter(command, "P" + key, diffWhere[key]);
                }


                return(command.ExecuteNonQuery());
            }
            catch (Exception ex)
            {
                //CSV2Core.Logging.DLSystemLog.add(ex);
                return(-1);
            }
        }
Example #5
0
 /// <example>
 /// Class instance = CSV2Core_MySQL.Support.SQLClassFilter.GetDefaultInstance[Class]();
 /// instance.Parameter1 = NevValue;
 /// instance.Parameter2 = ...
 /// bool isExists = CSV2Core_MySQL.Support.SQLClassFilter.Exists(Connection, Transaction, instance);
 /// </example>
 /// <param name="connection">Connection parameter</param>
 /// <param name="transaction">Transaction parameter</param>
 /// <param name="wrapper">InstanceWrapper for which to delete</param>
 /// <returns></returns>
 public static bool Exists(DbConnection connection, DbTransaction transaction, object instance)
 {
     return(Exists(connection, transaction, InstanceFilterWrapper.Wrap(instance)));
 }
Example #6
0
 /// <example>
 /// Class whereInstance = CSV2Core_MySQL.Support.SQLClassFilter.GetDefaultInstance[Class]();
 /// whereInstance.Parameter1 = NevValue;
 /// whereInstance.Parameter2 = ...
 /// int result = CSV2Core_MySQL.Support.SQLClassFilter.Delete(Connection, Transaction, whereInstance);
 /// </example>
 /// <param name="connection">Connection parameter</param>
 /// <param name="transaction">Transaction parameter</param>
 /// <param name="instance">Instance for which to delete</param>
 /// <returns></returns>
 public static int Delete(DbConnection connection, DbTransaction transaction, object instance)
 {
     return(Delete(connection, transaction, InstanceFilterWrapper.Wrap(instance)));
 }