Files
upo-senior-assistant/SeniorAssistant/Extensions/DataConnectionExtension.cs
Giacomo c807c474c4 Init
- aggiunto un po di tutto comeil progetto del prof
2018-09-14 19:38:02 +02:00

42 lines
1.0 KiB
C#

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<T>(this DataConnection db) => RunIgnoringException(() => db.CreateTable<T>());
public static async Task CreateTableIfNotExistsAsync<T>(this DataConnection db) => await RunIgnoringExceptionAsync(async () => await db.CreateTableAsync<T>());
static void RunIgnoringException(Action action)
{
if (action == null) return;
try
{
action.Invoke();
}
catch (SqliteException)
{
// Ignore Exception
}
}
static async Task RunIgnoringExceptionAsync(Func<Task> action)
{
if (action == null) await Task.Yield();
try
{
await action.Invoke();
}
catch
{ }
}
}
}