/// <summary> /// Inserta un elemento, selecciona el último id del elemento insertado. /// El id es asignado al elemento y es regresado en la función /// </summary> /// <typeparam name="T">El tipo de elemento a retornar</typeparam> /// <param name="element">El elmento generico a insertar.</param> /// <param name="conn">La conexión a SQLite.</param> /// <param name="input">La entrada necesaria para insertar el elemento.</param> /// <returns></returns> public static T GetLastId <T>(this IDatabaseMappable element, SQLite_Connector conn, Object input) where T : IDatabaseMappable { if (element.Create(conn, input)) { element.Id = (int)conn.SelectValue <long>(element.TableName.SelectLastId(element.PrimaryKey)); } return((T)element); }
/// <summary> /// Crea el campo como una cadena /// </summary> /// <param name="data">El objeto a crear el campo.</param> /// <param name="columnName">El nombre de la columna.</param> /// <param name="value">El valor de la columna.</param> /// <returns>El campo a insertar</returns> public static InsertField CreateFieldAsString(this IDatabaseMappable data, string columnName, Object value) { return(new InsertField() { ColumnName = columnName, DataType = InsertFieldType.STRING, Tablename = data.TableName, Value = value == null ? String.Empty : value.ToString() }); }
/// <summary> /// Crea el campo como fecha /// </summary> /// <param name="data">El objeto a crear el campo.</param> /// <param name="columnName">El nombre de la columna.</param> /// <param name="value">El valor de la columna.</param> /// <returns>El campo a insertar</returns> public static InsertField CreateFieldAsDate(this IDatabaseMappable data, string columnName, DateTime value) { return(new InsertField() { ColumnName = columnName, DataType = InsertFieldType.DATE, Tablename = data.TableName, Value = value }); }
/// <summary> /// Crea el campo como un número /// </summary> /// <param name="data">El objeto a crear el campo.</param> /// <param name="columnName">El nombre de la columna.</param> /// <param name="value">El valor de la columna.</param> /// <returns>El campo a insertar</returns> public static InsertField CreateFieldAsNumber(this IDatabaseMappable data, string columnName, Object value) { return(new InsertField() { ColumnName = columnName, DataType = InsertFieldType.NUMBER, Tablename = data.TableName, Value = value }); }
/// <summary> /// Crea una condición que pide que la llave primaria sea igual /// al valor del Id del elemento. /// </summary> /// <param name="element">El elemento a evaluar.</param> /// <returns>La condición como una cadena de SQL</returns> public static string CreatePrimaryKeyCondition(this IDatabaseMappable element) { String condition = "\"{0}\" = {1} "; return(String.Format(condition, element.PrimaryKey, element.Id)); }