Skip to content

Commit

Permalink
SettingsDb class now implements a ISettingsDb interface (useful when …
Browse files Browse the repository at this point in the history
…using Dependency Injection)
  • Loading branch information
igece committed May 8, 2022
1 parent bb26e52 commit bca2edb
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 8 deletions.
27 changes: 27 additions & 0 deletions src/SettingsDb/ISettingsDb.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
using System.Threading.Tasks;

namespace SettingsDb
{
public interface ISettingsDb
{
void Store<T>(string settingName, T value);

Task StoreAsync<T>(string settingName, T value);

T Read<T>(string settingName, T defaultValue = default);

Task<T> ReadAsync<T>(string settingName, T defaultValue = default);

void Clear(string settingName);

Task ClearAsync(string settingName);

void ClearAll();

Task ClearAllAsync();

long Count();

Task<long> CountAsync();
}
}
8 changes: 4 additions & 4 deletions src/SettingsDb/SettingsDb.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

namespace SettingsDb
{
public class SettingsDb<TConnection> where TConnection : DbConnection, new()
public class SettingsDb<TConnection> : ISettingsDb where TConnection : DbConnection, new()
{
public const string DefaultSettingsTable = "Settings";

Expand Down Expand Up @@ -64,12 +64,12 @@ private void InitDatabase()
private bool IsSettingsTableOk(TConnection dbConnection)
{
using (var sqlCmd = dbConnection.CreateCommand())
{
{
sqlCmd.CommandText = "SELECT COUNT() FROM PRAGMA_TABLE_INFO(@SettingsTable)";
sqlCmd.AddParameter("SettingsTable", _settingsTable);

//sqlCmd.Parameters.Add(CreateSqlParameter(sqlCmd, "SettingsTable", _settingsTable));

if ((long)sqlCmd.ExecuteScalar() != 3)
return false;

Expand Down Expand Up @@ -234,7 +234,7 @@ public long Count()

using (var dbConnection = new TConnection())
{
dbConnection.ConnectionString= _connectionString;
dbConnection.ConnectionString = _connectionString;
dbConnection.Open();

using (var sqlCmd = dbConnection.CreateCommand())
Expand Down
8 changes: 4 additions & 4 deletions src/SettingsDb/SettingsDb.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@
<Copyright>Copyright (c) 2022 Israel Gómez de Celis González</Copyright>
<PackageTags>settings;database;sqlite;json</PackageTags>
<PackageReadmeFile>README.md</PackageReadmeFile>
<AssemblyVersion>1.2.0</AssemblyVersion>
<Version>1.2.0</Version>
<FileVersion>1.2.0</FileVersion>
<AssemblyVersion>1.2.1</AssemblyVersion>
<Version>1.2.1</Version>
<FileVersion>1.2.1</FileVersion>
<Description>Store application settings without complications.</Description>
<PackageReleaseNotes>Added support for other database types than SQLite</PackageReleaseNotes>
<PackageReleaseNotes>SettingsDb class now implements a ISettingsDb interface (useful when using Dependency Injection)</PackageReleaseNotes>
</PropertyGroup>

<ItemGroup>
Expand Down

0 comments on commit bca2edb

Please sign in to comment.