public class LiteDbEventsPersistor : TriggerIt.Persisting.IPersitor
{
private const string EventsCollectionName = "TriggerItEvents";
private const string TriggersCollectionName = "TriggerItExecutedTriggerss";
private string GetDbFile()
{
return System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "database.db");
}
private LiteDatabase GetDb()
{
return new LiteDatabase(this.GetDbFile());
}
public Task<IEnumerable<Event>> LoadEventsAsync()
{
using (var db = this.GetDb())
{
var col = db.GetCollection<Event>(EventsCollectionName);
return Task.FromResult(col.FindAll());
}
}
public Task<IEnumerable<ExecutedTrigger>> LoadExecutedTriggersAsync()
{
using (var db = this.GetDb())
{
var col = db.GetCollection<ExecutedTrigger>(TriggersCollectionName);
return Task.FromResult(col.FindAll());
}
}
public Task PersistEventAsync(Event e)
{
using (var db = this.GetDb())
{
var col = db.GetCollection<Event>(EventsCollectionName);
col.Insert(e);
return Task.CompletedTask;
}
}
public Task PersistsExecutedTriggersAsync(List<ExecutedTrigger> triggerNames)
{
using (var db = this.GetDb())
{
var col = db.GetCollection<ExecutedTrigger>(TriggersCollectionName);
col.Insert(triggerNames);
return Task.CompletedTask;
}
}
}