Skip to content

Commit

Permalink
Redesing IDatabaseManager interface
Browse files Browse the repository at this point in the history
  • Loading branch information
marcel2215 committed Jan 10, 2025
1 parent f4def4d commit 01fc674
Showing 1 changed file with 25 additions and 15 deletions.
40 changes: 25 additions & 15 deletions src/Databases/IDatabaseManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,39 +4,49 @@ public interface IDatabaseManager
{
#region Databases

public Task CreateDatabaseAsync(string title, string? description = null);
public Task<IDatabase> CreateDatabaseAsync(string title, string? description = null, CancellationToken cancellationToken = default);

public Task<IReadOnlyList<IDatabase>> GetAllDatabasesAsync();
public IAsyncEnumerable<IDatabase> GetAllDatabasesAsync(CancellationToken cancellationToken = default);

public Task<IDatabase?> FindDatabaseAsync(Guid id);
public Task<IDatabase?> FindDatabaseByIdAsync(Guid id, CancellationToken cancellationToken = default);

public Task<IDatabase?> FindDatabaseAsync(string title);
public Task<IDatabase?> FindDatabaseByTitleAsync(string title, CancellationToken cancellationToken = default);

public Task SetTitleAsync(IDatabase database, string title);
public Task SetTitleAsync(IDatabase database, string title, CancellationToken cancellationToken = default);

public Task SetDescriptionAsync(IDatabase database, string? description);
public Task SetDescriptionAsync(IDatabase database, string? description, CancellationToken cancellationToken = default);

public Task DeleteAsync(IDatabase database);
public Task DeleteAsync(IDatabase database, CancellationToken cancellationToken = default);

#endregion

#region Items

public Task AddAsync(IDatabase database, IDatabaseItem item);
public Task<IDatabaseItem> CreateItemAsync(IDatabase database, string title, string? description = null, CancellationToken cancellationToken = default, params IEnumerable<KeyValuePair<string, string?>> properties);

public Task<IReadOnlyList<IDatabaseItem>> FindItemsAsync(IDatabase database, string? search = null, int count = 10, IDatabaseSorting? sorting = null, params IEnumerable<IDatabaseFilter> filters);
public Task<IAsyncEnumerable<IDatabaseItem>> GetAllItemsAsync(IDatabase database, CancellationToken cancellationToken = default);

public Task<IDatabaseItem> FindFirstItemAsync(IDatabase database, string? search = null, params IEnumerable<IDatabaseFilter> filters);
public Task<IAsyncEnumerable<IDatabaseItem>> SearchItemsAsync(IDatabase database, string? query = null, int count = 10, IDatabaseSorting? sorting = null, CancellationToken cancellationToken = default, params IEnumerable<IDatabaseFilter> filters);

public Task SetTitleAsync(IDatabaseItem item, string title);
public Task<IDatabaseItem?> SearchItemAsync(IDatabase database, string? query = null, IDatabaseSorting? sorting = null, CancellationToken cancellationToken = default, params IEnumerable<IDatabaseFilter> filters);

public Task SetDescriptionAsync(IDatabaseItem item, string? description);
public Task<IDatabaseItem?> FindItemByIdAsync(Guid id, CancellationToken cancellationToken = default);

public Task SetPropertyAsync(IDatabaseItem item, string property, string? value);
public Task<IDatabaseItem?> FindItemByTitleAsync(IDatabase database, string title, CancellationToken cancellationToken = default);

public Task SetPropertiesAsync(IDatabaseItem item, IReadOnlyDictionary<string, string?> properties);
public Task SetTitleAsync(IDatabaseItem item, string title, CancellationToken cancellationToken = default);

public Task DeleteAsync(IDatabaseItem item);
public Task SetDescriptionAsync(IDatabaseItem item, string? description, CancellationToken cancellationToken = default);

public Task AddPropertyAsync(IDatabaseItem item, string key, string? value, CancellationToken cancellationToken = default);

public Task SetPropertyAsync(IDatabaseItem item, string key, string? value, CancellationToken cancellationToken = default);

public Task SetPropertiesAsync(IDatabaseItem item, IEnumerable<KeyValuePair<string, string?>> properties, CancellationToken cancellationToken = default);

public Task RemovePropertyAsync(IDatabaseItem item, string key, CancellationToken cancellationToken = default);

public Task DeleteAsync(IDatabaseItem item, CancellationToken cancellationToken = default);

#endregion
}

0 comments on commit 01fc674

Please sign in to comment.