/// <summary> /// TODO: use sqlite returning statement. /// https://github.com/ericsink/SQLitePCL.raw/issues/416. /// </summary> /// <param name="transaction">The transaction.</param> /// <param name="startsWith">The start string to deleted.</param> public ValueTask <int> DeleteByStartsWithAsync(IDbTransaction transaction, string startsWith) { return(transaction.ExecuteNonQueryAsync( () => DeleteByStartsWithPathCommand, $"{nameof(DatabaseTable)}/{nameof(DeleteByStartsWithPathCommand)}/{TableName}", SqliteTransaction.EscapeLikeContent(startsWith) + "%")); }
public ValueTask <int> DeleteByPathAsync(IDbTransaction transaction, string path) { return(transaction.ExecuteNonQueryAsync( () => DeleteByPathCommand, $"{nameof(DatabaseTable)}/{nameof(DeleteByPathCommand)}/{TableName}", path)); }
public async ValueTask <bool> DeletePropertyOnFileUpdated(IDbTransaction transaction, long target) { return(await transaction.ExecuteNonQueryAsync( () => DeletePropertyByTargetAndFeatureCommand, $"{nameof(DatabaseTable)}/{nameof(DeletePropertyByTargetAndFeatureCommand)}/{TableName}", target, PropertyFeature.AutoDeleteWhenFileUpdate) != 0); }
public async ValueTask <bool> DeleteProperty(IDbTransaction transaction, long target, string key) { return(await transaction.ExecuteNonQueryAsync( () => DeletePropertyByTargetAndKeyCommand, $"{nameof(DatabaseTable)}/{nameof(DeletePropertyByTargetAndKeyCommand)}/{TableName}", target, key) != 0); }
public ValueTask <PropertyDataRow[]> SelectPropertiesByTargetAsync( IDbTransaction transaction, long target) { return(transaction.ExecuteReaderAsync( () => SelectPropertiesByTargetCommand, $"{nameof(DatabaseTable)}/{nameof(SelectPropertiesByTargetCommand)}/{TableName}", HandleReaderPropertyDataRows, target)); }
public ValueTask <DataRow[]> SelectByStartsWithAsync( IDbTransaction transaction, string startsWith) { return(transaction.ExecuteReaderAsync( () => SelectByStartsWithPathCommand, $"{nameof(DatabaseTable)}/{nameof(SelectByStartsWithPathCommand)}/{TableName}", HandleReaderDataRows, SqliteTransaction.EscapeLikeContent(startsWith) + "%")); }
public ValueTask <DataRow[]> SelectByParentAsync( IDbTransaction transaction, long parent) { return(transaction.ExecuteReaderAsync( () => SelectByParentCommand, $"{nameof(DatabaseTable)}/{nameof(SelectByParentCommand)}/{TableName}", HandleReaderDataRows, parent)); }
public ValueTask <DataRow?> SelectByPathAsync( IDbTransaction transaction, string path) { return(transaction.ExecuteReaderAsync( () => SelectByPathCommand, $"{nameof(DatabaseTable)}/{nameof(SelectByPathCommand)}/{TableName}", HandleReaderSingleDataRow, path)); }
public ValueTask <int> UpdateStatsByIdAsync( IDbTransaction transaction, long id, string contentTag) { return(transaction.ExecuteNonQueryAsync( () => UpdateStatsByIdCommand, $"{nameof(DatabaseTable)}/{nameof(UpdateStatsByIdCommand)}/{TableName}", id, contentTag)); }
public ValueTask <PropertyDataRow?> SelectPropertyAsync( IDbTransaction transaction, long target, string key) { return(transaction.ExecuteReaderAsync( () => SelectPropertyByTargetAndKeyCommand, $"{nameof(DatabaseTable)}/{nameof(SelectPropertyByTargetAndKeyCommand)}/{TableName}", HandleReaderSinglePropertyDataRow, target, key)); }
public async ValueTask <long> InsertOrReplacePropertyAsync( IDbTransaction transaction, long target, string key, ReadOnlyMemory <byte> value, PropertyFeature?feature) { return((long)(await transaction.ExecuteScalarAsync( () => InsertOrReplacePropertyCommand, $"{nameof(DatabaseTable)}/{nameof(InsertOrReplacePropertyCommand)}/{TableName}", target, key, value.ToArray(), // TODO: fix performance feature)) !); }
public async ValueTask <long> InsertAsync( IDbTransaction transaction, string path, long?parent, bool isDirectory, string?identifierTag, string?contentTag) { return((long)(await transaction.ExecuteScalarAsync( () => InsertCommand, $"{nameof(DatabaseTable)}/{nameof(InsertCommand)}/{TableName}", path, parent, isDirectory ? 1 : 0, identifierTag, contentTag)) !); }