Files
SkydiveLogs/Back/skydiveLogs-api.Data/LiteDbProvider.cs

42 lines
1.3 KiB
C#

using LiteDB;
using skydiveLogs_api.Data.Interface;
using skydiveLogs_api.Model;
namespace skydiveLogs_api.Data
{
public class LiteDbProvider : IDataProvider
{
public LiteDbProvider(string connectionString)
{
_db = new LiteDatabase(connectionString);
BsonMapper.Global.Entity<Jump>().DbRef(x => x.JumpType, "JumpType");
BsonMapper.Global.Entity<Jump>().DbRef(x => x.Aircraft, "Aircraft");
BsonMapper.Global.Entity<Jump>().DbRef(x => x.DropZone, "DropZone");
BsonMapper.Global.Entity<Jump>().DbRef(x => x.Gear, "Gear");
}
public LiteCollection<T> GetCollection<T>()
{
return _db.GetCollection<T>();
}
public void Close()
{
_db.Dispose();
}
private readonly LiteDatabase _db;
public LiteCollection<Aircraft> CollOfAircraft => _db.GetCollection<Aircraft>();
public LiteCollection<DropZone> CollOfDropZone => _db.GetCollection<DropZone>();
public LiteCollection<Gear> CollOfGear => _db.GetCollection<Gear>();
public LiteCollection<JumpType> CollOfJumpType => _db.GetCollection<JumpType>();
public LiteCollection<Jump> CollOfJump => _db.GetCollection<Jump>();
}
}