71 lines
2.6 KiB
C#
71 lines
2.6 KiB
C#
using LiteDB;
|
|
|
|
using skydiveLogs_api.Domain;
|
|
using skydiveLogs_api.Infrastructure.Interfaces;
|
|
|
|
namespace skydiveLogs_api.Infrastructure
|
|
{
|
|
public class LiteDbProvider : IDataProvider
|
|
{
|
|
#region Public Constructors
|
|
|
|
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");
|
|
BsonMapper.Global.Entity<Jump>().DbRef(x => x.User, "User");
|
|
|
|
BsonMapper.Global.Entity<UserImage>().DbRef(x => x.User, "User");
|
|
|
|
BsonMapper.Global.Entity<UserStats>().DbRef(x => x.User, "User");
|
|
|
|
BsonMapper.Global.Entity<Gear>().DbRef(x => x.User, "User");
|
|
|
|
BsonMapper.Global.Entity<FavoriteDropZone>().DbRef(x => x.User, "User");
|
|
BsonMapper.Global.Entity<FavoriteDropZone>().DbRef(x => x.DropZone, "DropZone");
|
|
|
|
BsonMapper.Global.Entity<TunnelFlight>().DbRef(x => x.Tunnel, "DropZone");
|
|
}
|
|
|
|
#endregion Public Constructors
|
|
|
|
#region Public Methods
|
|
|
|
public void Close()
|
|
{
|
|
_db.Dispose();
|
|
}
|
|
|
|
public ILiteCollection<T> GetCollection<T>()
|
|
{
|
|
return _db.GetCollection<T>();
|
|
}
|
|
|
|
#endregion Public Methods
|
|
|
|
#region Public Properties
|
|
|
|
public ILiteCollection<Aircraft> CollOfAircraft => _db.GetCollection<Aircraft>();
|
|
public ILiteCollection<DropZone> CollOfDropZone => _db.GetCollection<DropZone>();
|
|
public ILiteCollection<FavoriteDropZone> CollOfFavoriteDropZone => _db.GetCollection<FavoriteDropZone>();
|
|
public ILiteCollection<Gear> CollOfGear => _db.GetCollection<Gear>();
|
|
public ILiteCollection<UserImage> CollOfImage => _db.GetCollection<UserImage>();
|
|
public ILiteCollection<Jump> CollOfJump => _db.GetCollection<Jump>();
|
|
public ILiteCollection<JumpType> CollOfJumpType => _db.GetCollection<JumpType>();
|
|
public ILiteCollection<UserStats> CollOfStats => _db.GetCollection<UserStats>();
|
|
public ILiteCollection<User> CollOfUser => _db.GetCollection<User>();
|
|
public ILiteCollection<TunnelFlight> CollOfTunnelFlight => _db.GetCollection<TunnelFlight>();
|
|
|
|
#endregion Public Properties
|
|
|
|
#region Private Fields
|
|
|
|
private readonly LiteDatabase _db;
|
|
|
|
#endregion Private Fields
|
|
}
|
|
} |