/// <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))); }
/// <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; }
/// <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; }
/// <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); }
/// <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); }
/// <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); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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) { }
/// <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)); }
/// <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)); }
/// <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) { }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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))); }
/// <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)); }