using CarCareTracker.External.Interfaces; using CarCareTracker.Models; using LiteDB; namespace CarCareTracker.External.Implementations { public class PlanRecordDataAccess : IPlanRecordDataAccess { private LiteDatabase db { get; set; } private static string tableName = "planrecords"; public PlanRecordDataAccess(ILiteDBInjection liteDB) { db = liteDB.GetLiteDB(); } public List GetPlanRecordsByVehicleId(int vehicleId) { var table = db.GetCollection(tableName); var planRecords = table.Find(Query.EQ(nameof(PlanRecord.VehicleId), vehicleId)); return planRecords.ToList() ?? new List(); } public PlanRecord GetPlanRecordById(int planRecordId) { var table = db.GetCollection(tableName); return table.FindById(planRecordId); } public bool DeletePlanRecordById(int planRecordId) { var table = db.GetCollection(tableName); table.Delete(planRecordId); return true; } public bool SavePlanRecordToVehicle(PlanRecord planRecord) { var table = db.GetCollection(tableName); table.Upsert(planRecord); return true; } public bool DeleteAllPlanRecordsByVehicleId(int vehicleId) { var table = db.GetCollection(tableName); var planRecords = table.DeleteMany(Query.EQ(nameof(PlanRecord.VehicleId), vehicleId)); return true; } } }