44 lines
1.3 KiB
C#
44 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 ILiteCollection<T> GetCollection<T>()
|
|
{
|
|
return _db.GetCollection<T>();
|
|
}
|
|
|
|
public void Close()
|
|
{
|
|
_db.Dispose();
|
|
}
|
|
|
|
private readonly LiteDatabase _db;
|
|
|
|
public ILiteCollection<Aircraft> CollOfAircraft => _db.GetCollection<Aircraft>();
|
|
|
|
public ILiteCollection<DropZone> CollOfDropZone => _db.GetCollection<DropZone>();
|
|
|
|
public ILiteCollection<Gear> CollOfGear => _db.GetCollection<Gear>();
|
|
|
|
public ILiteCollection<JumpType> CollOfJumpType => _db.GetCollection<JumpType>();
|
|
|
|
public ILiteCollection<Jump> CollOfJump => _db.GetCollection<Jump>();
|
|
|
|
public ILiteCollection<User> CollOfUser => _db.GetCollection<User>();
|
|
}
|
|
}
|