Beispiel #1
0
        /// <summary>
        /// Get value of type T from a data reader.
        /// </summary>
        /// <typeparam name="T">Type to get.</typeparam>
        /// <param name="columnDef">APColumnDef</param>
        /// <param name="reader">Data reader.</param>
        /// <param name="columnName">Name of column.</param>
        /// <param name="throwIfValidColumnName">throw if the name specified is not a valid column name.</param>
        /// <param name="defaultValue">Default value.</param>
        /// <returns>Value of type T.</returns>
        public static T GetValue <T>(this APColumnDef columnDef, IDataReader reader, string columnName, bool throwIfValidColumnName, T defaultValue)
        {
            int index;

            try
            {
                index = reader.GetOrdinal(columnName);
            }
            catch (IndexOutOfRangeException)
            {
                if (throwIfValidColumnName)
                {
                    throw;
                }
                return(defaultValue);
            }

            if (reader.IsDBNull(index))
            {
                return(defaultValue);
            }
            if (typeof(T).IsEnum)
            {
                return((T)(object)reader.GetInt32(index));
            }
            if (typeof(T).IsGenericType && typeof(T).IsValueType)
            {
                return((T)Convert.ChangeType(reader[index], Nullable.GetUnderlyingType(typeof(T))));
            }
            if (typeof(T) == typeof(Guid) && reader[index] is Array)
            {
                return((T)(object)(new Guid((byte[])reader[index])));
            }
            return((T)Convert.ChangeType(reader[index], typeof(T)));
        }
Beispiel #2
0
		/// <summary>
		/// Create a new relation definition.
		/// </summary>
		/// <param name="master">Master column definition.</param>
		/// <param name="slave">Save column definition.</param>
		public APRelationDef(APColumnDef master, APColumnDef slave)
		{
			if (Object.Equals(master, null))
				throw new ArgumentNullException("master");
			if (Object.Equals(slave, null))
				throw new ArgumentNullException("slave");

			_master = master;
			_slave = slave;
		}
Beispiel #3
0
        /// <summary>
        /// Create a new relation definition.
        /// </summary>
        /// <param name="master">Master column definition.</param>
        /// <param name="slave">Save column definition.</param>
        public APRelationDef(APColumnDef master, APColumnDef slave)
        {
            if (Object.Equals(master, null))
            {
                throw new ArgumentNullException("master");
            }
            if (Object.Equals(slave, null))
            {
                throw new ArgumentNullException("slave");
            }

            _master = master;
            _slave  = slave;
        }
Beispiel #4
0
		/// <summary>
		/// Create a new relation definition.
		/// </summary>
		/// <param name="masterTableName">Master table name.</param>
		/// <param name="masterColumnName">Master column name.</param>
		/// <param name="slaveTableName">Slave table name.</param>
		/// <param name="slaveColumnName">Slave table name.</param>
		public APRelationDef(string masterTableName, string masterColumnName, string slaveTableName, string slaveColumnName)
		{
			if (masterColumnName == null)
				throw new ArgumentNullException("masterColumnName");
			if (masterColumnName == String.Empty)
				throw new ArgumentException("masterColumnName");

			if (slaveColumnName == null)
				throw new ArgumentNullException("slaveColumnName");
			if (slaveColumnName == String.Empty)
				throw new ArgumentException("slaveColumnName");

			_master = new APColumnDef(masterTableName, masterColumnName);
			_slave = new APColumnDef(slaveTableName, slaveColumnName);
		}
Beispiel #5
0
        /// <summary>
        /// Determines whether two Object instances are equal.
        /// </summary>
        /// <param name="obj">The Object to compare with the current Object.</param>
        /// <returns>true if the specified Object is equal to the current Object; otherwise, false.</returns>
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }

            APColumnDef other = obj as APColumnDef;

            if (!Object.ReferenceEquals(other, null))
            {
                return(_tableDef == other._tableDef && _columnName == other._columnName);
            }

            return(false);
        }
Beispiel #6
0
        /// <summary>
        /// Create a new relation definition.
        /// </summary>
        /// <param name="masterTableName">Master table name.</param>
        /// <param name="masterColumnName">Master column name.</param>
        /// <param name="slaveTableName">Slave table name.</param>
        /// <param name="slaveColumnName">Slave table name.</param>
        public APRelationDef(string masterTableName, string masterColumnName, string slaveTableName, string slaveColumnName)
        {
            if (masterColumnName == null)
            {
                throw new ArgumentNullException("masterColumnName");
            }
            if (masterColumnName == String.Empty)
            {
                throw new ArgumentException("masterColumnName");
            }

            if (slaveColumnName == null)
            {
                throw new ArgumentNullException("slaveColumnName");
            }
            if (slaveColumnName == String.Empty)
            {
                throw new ArgumentException("slaveColumnName");
            }

            _master = new APColumnDef(masterTableName, masterColumnName);
            _slave  = new APColumnDef(slaveTableName, slaveColumnName);
        }
Beispiel #7
0
 /// <summary>
 /// Create a 'SET' phrase with specified value.
 /// </summary>
 /// <param name="columnDef">APColumnDef</param>
 /// <param name="value">Value.</param>
 /// <param name="paramName">SqlCommand parameter name.</param>
 /// <returns>Set phrase.</returns>
 public static APSqlSetPhrase SetValue <T>(this APColumnDef columnDef, T value, string paramName)
 {
     return(new APSqlSetPhrase(columnDef, value, paramName));
 }
Beispiel #8
0
 /// <summary>
 /// Build a SQL aggregation Expression of min.
 /// </summary>
 /// <param name="columnDef">Column definition.</param>
 /// <returns>SQL aggregation Expression of min.</returns>
 public static APSqlAggregationExpr Min(this APColumnDef columnDef)
 {
     return(new APSqlAggregationExpr(new APSqlColumnExpr(columnDef), APSqlAggregationType.MIN));
 }
Beispiel #9
0
 /// <summary>
 /// Build a SQL aggregation Expression of count big.
 /// </summary>
 /// <param name="columnDef">Column definition.</param>
 /// <param name="mode">Select mode, 'ALL' or 'DISTINCT'.</param>
 /// <returns>SQL aggregation Expression of count big.</returns>
 public static APSqlAggregationExpr CountBig(this APColumnDef columnDef, APSqlSelectMode mode)
 {
     return(new APSqlAggregationExpr(new APSqlColumnExpr(columnDef), APSqlAggregationType.COUNT_BIG, mode));
 }
Beispiel #10
0
 /// <summary>
 /// Build a SQL aggregation Expression of grouping.
 /// </summary>
 /// <param name="columnDef">Column definition.</param>
 /// <returns>SQL aggregation Expression of grouping.</returns>
 public static APSqlAggregationExpr Grouping(this APColumnDef columnDef)
 {
     return(new APSqlAggregationExpr(new APSqlColumnExpr(columnDef), APSqlAggregationType.GROUPING));
 }
Beispiel #11
0
 /// <summary>
 /// Build a SQL aggregation Expression of checksum agg.
 /// </summary>
 /// <param name="columnDef">Column definition.</param>
 /// <param name="mode">Select mode, 'ALL' or 'DISTINCT'.</param>
 /// <returns>SQL aggregation Expression of checksum agg.</returns>
 public static APSqlAggregationExpr ChecksumAgg(this APColumnDef columnDef, APSqlSelectMode mode)
 {
     return(new APSqlAggregationExpr(new APSqlColumnExpr(columnDef), APSqlAggregationType.CHECKSUM_AGG, mode));
 }
Beispiel #12
0
 /// <summary>
 /// Build a SQL aggregation Expression of count big.
 /// </summary>
 /// <param name="columnDef">Column definition.</param>
 /// <returns>SQL aggregation Expression of count big.</returns>
 public static APSqlAggregationExpr CountBig(this APColumnDef columnDef)
 {
     return(new APSqlAggregationExpr(new APSqlColumnExpr(columnDef), APSqlAggregationType.COUNT_BIG));
 }
Beispiel #13
0
 /// <summary>
 /// Create a 'SET' phrase with specified value. When set a column equals another column.
 /// </summary>
 /// <param name="columnDef">APColumnDef</param>
 /// <param name="value">Value.</param>
 /// <returns>Set phrase.</returns>
 public static APSqlSetPhrase SetValue(this APColumnDef columnDef, APColumnDef value)
 {
     return(new APSqlSetPhrase(columnDef, value));
 }
		/// <summary>
		/// Create a new NumberAPRptColumn.
		/// </summary>
		/// <param name="columnDef">Column define.</param>
		public NumberAPRptColumn(APColumnDef columnDef)
			: base(columnDef)
		{
		}
Beispiel #15
0
 /// <summary>
 /// Build a SQL aggregation Expression of statistical standard deviation for the population.
 /// </summary>
 /// <param name="columnDef">Column definition.</param>
 /// <returns>SQL aggregation Expression of statistical standard deviation for the population.</returns>
 public static APSqlAggregationExpr Stdevp(this APColumnDef columnDef)
 {
     return(new APSqlAggregationExpr(new APSqlColumnExpr(columnDef), APSqlAggregationType.STDEVP));
 }
Beispiel #16
0
 /// <summary>
 /// Build a SQL aggregation Expression of sum.
 /// </summary>
 /// <param name="columnDef">Column definition.</param>
 /// <returns>SQL aggregation Expression of sum.</returns>
 public static APSqlAggregationExpr Sum(this APColumnDef columnDef)
 {
     return(new APSqlAggregationExpr(new APSqlColumnExpr(columnDef), APSqlAggregationType.SUM));
 }
Beispiel #17
0
 /// <summary>
 /// Get value of type T from a data reader.
 /// </summary>
 /// <typeparam name="T">Type to get.</typeparam>
 /// <param name="columnDef">APColumnDef</param>
 /// <param name="reader">Data reader.</param>
 /// <param name="throwIfValidColumnName">throw if the name specified is not a valid column name.</param>
 /// <param name="defaultValue">Default value.</param>
 /// <returns>Value of type T.</returns>
 public static T GetValue <T>(this APColumnDef columnDef, IDataReader reader, bool throwIfValidColumnName, T defaultValue)
 {
     return(GetValue <T>(columnDef, reader, columnDef.ColumnName, throwIfValidColumnName, defaultValue));
 }
		/// <summary>
		/// Create a new NumberAPRptColumn.
		/// </summary>
		/// <param name="columnDef">Column define.</param>
		/// <param name="id">Column unique ID.</param>
		/// <param name="title">Title.</param>
		public NumberAPRptColumn(APColumnDef columnDef, string id, string title)
			: base(columnDef, id, title)
		{
		}
Beispiel #19
0
 /// <summary>
 /// Get a new auto-increment id.
 /// </summary>
 /// <param name="column">The column.</param>
 /// <returns>A new id value.</returns>
 public virtual long GetNewId(APColumnDef column)
 {
     return(_database.GetNewId(column.TableDef.TableName, column.ColumnName));
 }
Beispiel #20
0
 /// <summary>
 /// Build a SQL aggregation Expression of sum.
 /// </summary>
 /// <param name="columnDef">Column definition.</param>
 /// <param name="mode">Select mode, 'ALL' or 'DISTINCT'.</param>
 /// <returns>SQL aggregation Expression of sum.</returns>
 public static APSqlAggregationExpr Sum(this APColumnDef columnDef, APSqlSelectMode mode)
 {
     return(new APSqlAggregationExpr(new APSqlColumnExpr(columnDef), APSqlAggregationType.SUM, mode));
 }
Beispiel #21
0
 /// <summary>
 /// Create a new 'SELECT' phrase with alias.
 /// </summary>
 /// <param name="columnDef">The column define.</param>
 /// <param name="alias">Alias.</param>
 /// <returns>'SELECT' phrase.</returns>
 public static APSqlSelectPhrase As(this APColumnDef columnDef, string alias)
 {
     return(new APSqlSelectPhrase(columnDef, alias));
 }
Beispiel #22
0
 /// <summary>
 /// Build a SQL aggregation Expression of statistical variance for the population.
 /// </summary>
 /// <param name="columnDef">Column definition.</param>
 /// <returns>SQL aggregation Expression of statistical variance for the population.</returns>
 public static APSqlAggregationExpr Varp(this APColumnDef columnDef)
 {
     return(new APSqlAggregationExpr(new APSqlColumnExpr(columnDef), APSqlAggregationType.VARP));
 }
Beispiel #23
0
 /// <summary>
 /// Build a SQL aggregation Expression of average.
 /// </summary>
 /// <param name="columnDef">Column definition.</param>
 /// <returns>SQL aggregation Expression of average.</returns>
 public static APSqlAggregationExpr Avg(this APColumnDef columnDef)
 {
     return(new APSqlAggregationExpr(new APSqlColumnExpr(columnDef), APSqlAggregationType.AVG));
 }
Beispiel #24
0
 /// <summary>
 /// Get value of type T from a data reader.
 /// </summary>
 /// <typeparam name="T">Type to get.</typeparam>
 /// <param name="columnDef">APColumnDef</param>
 /// <param name="reader">Data reader.</param>
 /// <param name="columnName">Name of column.</param>
 /// <param name="throwIfValidColumnName">throw if the name specified is not a valid column name.</param>
 /// <returns>Value of type T.</returns>
 public static T GetValue <T>(this APColumnDef columnDef, IDataReader reader, string columnName, bool throwIfValidColumnName)
 {
     return(GetValue <T>(columnDef, reader, columnName, throwIfValidColumnName, defaultValue: default(T)));
 }
Beispiel #25
0
 /// <summary>
 /// Build a SQL aggregation Expression of binary checksum.
 /// </summary>
 /// <param name="columnDef">Column definition.</param>
 /// <returns>SQL aggregation Expression of binary checksum.</returns>
 public static APSqlAggregationExpr BinaryChecksum(this APColumnDef columnDef)
 {
     return(new APSqlAggregationExpr(new APSqlColumnExpr(columnDef), APSqlAggregationType.BINARY_CHECKSUM));
 }