You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Seekers/Helpers/DatabaseHelper.cs

49 lines
1.5 KiB

6 months ago
using SQLite;
using System;
using System.Collections.Generic;
6 months ago
using System.IO;
using System.Linq.Expressions;
using System.Threading.Tasks;
namespace Justice.Helpers
{
public class DatabaseHelper
{
private readonly SQLiteAsyncConnection _database;
6 months ago
public DatabaseHelper(string databaseName = "JusticeAppDatabase.db")
{
var dbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), databaseName);
_database = new SQLiteAsyncConnection(dbPath);
}
6 months ago
public async Task InitializeAsync<T>() where T : class, new()
{
await _database.CreateTableAsync<T>();
}
6 months ago
public async Task<int> InsertAsync<T>(T item) where T : class, new()
{
return await _database.InsertAsync(item);
}
6 months ago
public async Task<List<T>> GetAllAsync<T>() where T : class, new()
{
return await _database.Table<T>().ToListAsync();
}
6 months ago
public async Task<int> DeleteAsync<T>(T item) where T : class, new()
{
return await _database.DeleteAsync(item);
}
6 months ago
public async Task<int> UpdateAsync<T>(T item) where T : new()
{
return await _database.UpdateAsync(item);
}
6 months ago
public async Task<T> FindAsync<T>(string query, params object[] args) where T : new()
{
return await _database.FindWithQueryAsync<T>(query, args);
}
}
}