Persisting trigger data - ladislavsalom/TriggerIt GitHub Wiki

LiteDB Persistor example

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;
		}
	}
}
⚠️ **GitHub.com Fallback** ⚠️