using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; using SQLite; namespace Justice.Helpers { public class DatabaseHelper { private readonly SQLiteAsyncConnection _database; public DatabaseHelper(string databaseName = "Appdatabase.db") { var dbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), databaseName); _database = new SQLiteAsyncConnection(dbPath); } public async Task InitializeAsync() where T: new() { await _database.CreateTableAsync(); } public async Task InsertAsync(T item) where T : new() { return await _database.InsertAsync(item); } public async Task>GetAllAsync()where T : new() { return await _database.Table().ToListAsync(); } public async Task> GetAsync(Expression> predicate) where T : new() { return await _database.Table().Where(predicate).ToListAsync(); } public async Task UpdateAsync(T item) where T : new() { return await _database.UpdateAsync(item); } public async Task DeleteAsync(T item) where T : new() { return await _database.DeleteAsync(item); } } }