using LinqToDB; using LinqToDB.Data; using Microsoft.Data.Sqlite; using System; using System.Threading.Tasks; namespace SeniorAssistant.Extensions { public static class DataConnectionExtensions { public static void CreateTableIfNotExists(this DataConnection db) => RunIgnoringException(() => db.CreateTable()); public static async Task CreateTableIfNotExistsAsync(this DataConnection db) => await RunIgnoringExceptionAsync(async () => await db.CreateTableAsync()); static void RunIgnoringException(Action action) { if (action == null) return; try { action.Invoke(); } catch (SqliteException) { // Ignore Exception } } static async Task RunIgnoringExceptionAsync(Func action) { if (action == null) await Task.Yield(); try { await action.Invoke(); } catch { } } } }