예제 #1
0
 /// <summary>
 /// Adds the time stamp when updating records.
 /// </summary>
 public override bool BeforeUpdate(QueryBuilder pQuery)
 {
     if (_onUpdate)
     {
         Stamp(pQuery, _fieldName);
     }
     return true;
 }
예제 #2
0
        /// <summary>
        /// Constructor
        /// </summary>
        public Parameters(QueryBuilder pQuery, Model pModel)
        {
            _query = pQuery;
            _model = pModel;
            _settings = pModel.Settings;
            _source = pModel.DataSource;

            Data = new Dictionary<string, object>();
        }
예제 #3
0
        /// <summary>
        /// Sets the defaults for new records.
        /// </summary>
        public override bool BeforeInsert(QueryBuilder pQuery)
        {
            if (!Model.Data.Has(DeltaField))
            {
                Model.Data[DeltaField] = 0;
            }

            return base.BeforeInsert(pQuery);
        }
예제 #4
0
 /// <summary>
 /// Orders the result by a fieldname.
 /// </summary>
 public static iQueryBuilder OrderBy(
     this iQueryBuilder pQuery,
     string pFieldName,
     QueryBuilder.eDIR pDir = QueryBuilder.eDIR.ASC,
     bool pExpression = false)
 {
     QueryBuilder query = (QueryBuilder)pQuery;
     string str = pExpression ? pFieldName : query.Field(pFieldName);
     KeyValuePair<QueryBuilder.eDIR, string> pair = new KeyValuePair<QueryBuilder.eDIR, string>(pDir, str);
     query.Order.Add(pair);
     return pQuery;
 }
예제 #5
0
        /// <summary>
        /// Adds the time stamp when creating records.
        /// </summary>
        public override bool BeforeInsert(QueryBuilder pQuery)
        {
            if (_onCreate)
            {
                Stamp(pQuery, _fieldName);
            }
            
            // add the timestamp to the ON DUPLICATE KEY part of the query
            if (!_onUpdate || !pQuery.OnDuplicateEnabled)
            {
                return true;
            }

            pQuery.OnDuplicate();
            Stamp(pQuery, _fieldName);
            pQuery.OnInsert();
            return true;
        }
예제 #6
0
 /// <summary>
 /// Order clause
 /// </summary>
 public static string Order(QueryBuilder pQuery)
 {
     return string.Join(_COMMA,
         from orderBy in pQuery.Order select string.Format("{0} {1}", orderBy.Value, orderBy.Key));
 }
예제 #7
0
 /// <summary>
 /// Executes the query and returns the results.
 /// </summary>
 /// <param name="pQuery">The query to execute.</param>
 /// <returns>The query results</returns>
 public QueryResult Execute(QueryBuilder pQuery)
 {
     throw new NotImplementedException();
 }
예제 #8
0
 /// <summary>
 /// Place any pre-create logic in this callback. To abort creating of the
 /// record return false.
 /// </summary>
 /// <returns>True to create the record.</returns>
 public virtual bool BeforeInsert(QueryBuilder pQuery)
 {
     return true;
 }
예제 #9
0
 /// <summary>
 /// Place any pre-deletion logic here.
 /// </summary>
 /// <returns>True to delete the record.</returns>
 public virtual bool BeforeDelete(QueryBuilder pQuery)
 {
     return true;
 }
예제 #10
0
 /// <summary>
 /// Called before a find operation.
 /// </summary>
 public virtual void BeforeSelect(QueryBuilder pQuery)
 {
 }