using CarCareTracker.External.Interfaces; using CarCareTracker.Helper; using CarCareTracker.Models; using LiteDB; namespace CarCareTracker.External.Implementations { public class UserAccessDataAccess : IUserAccessDataAccess { private static string dbName = StaticHelper.DbName; private static string tableName = "useraccessrecords"; /// /// Gets a list of vehicles user have access to. /// /// /// public List GetUserAccessByUserId(int userId) { using (var db = new LiteDatabase(dbName)) { var table = db.GetCollection(tableName); return table.Find(x=>x.Id.UserId == userId).ToList(); }; } public UserAccess GetUserAccessByVehicleAndUserId(int userId, int vehicleId) { using (var db = new LiteDatabase(dbName)) { var table = db.GetCollection(tableName); return table.Find(x => x.Id.UserId == userId && x.Id.VehicleId == vehicleId).FirstOrDefault(); }; } public List GetUserAccessByVehicleId(int vehicleId) { using (var db = new LiteDatabase(dbName)) { var table = db.GetCollection(tableName); return table.Find(x => x.Id.VehicleId == vehicleId).ToList(); }; } public bool SaveUserAccess(UserAccess userAccess) { using (var db = new LiteDatabase(dbName)) { var table = db.GetCollection(tableName); table.Upsert(userAccess); return true; }; } public bool DeleteUserAccess(int userId, int vehicleId) { using (var db = new LiteDatabase(dbName)) { var table = db.GetCollection(tableName); table.DeleteMany(x => x.Id.UserId == userId && x.Id.VehicleId == vehicleId); return true; }; } /// /// Delete all access records when a vehicle is deleted. /// /// /// public bool DeleteAllAccessRecordsByVehicleId(int vehicleId) { using (var db = new LiteDatabase(dbName)) { var table = db.GetCollection(tableName); table.DeleteMany(x=>x.Id.VehicleId == vehicleId); return true; }; } /// /// Delee all access records when a user is deleted. /// /// /// public bool DeleteAllAccessRecordsByUserId(int userId) { using (var db = new LiteDatabase(dbName)) { var table = db.GetCollection(tableName); table.DeleteMany(x => x.Id.UserId == userId); return true; }; } } }