using CarCareTracker.External.Interfaces; using CarCareTracker.Models; using CarCareTracker.Helper; using LiteDB; namespace CarCareTracker.External.Implementations { public class InspectionRecordTemplateDataAccess : IInspectionRecordTemplateDataAccess { private ILiteDBHelper _liteDB { get; set; } private static string tableName = "inspectionrecordtemplates"; public InspectionRecordTemplateDataAccess(ILiteDBHelper liteDB) { _liteDB = liteDB; } public List GetInspectionRecordTemplatesByVehicleId(int vehicleId) { var db = _liteDB.GetLiteDB(); var table = db.GetCollection(tableName); var inspectionRecords = table.Find(Query.EQ(nameof(InspectionRecordInput.VehicleId), vehicleId)); return inspectionRecords.ToList() ?? new List(); } public InspectionRecordInput GetInspectionRecordTemplateById(int inspectionRecordTemplateId) { var db = _liteDB.GetLiteDB(); var table = db.GetCollection(tableName); return table.FindById(inspectionRecordTemplateId); } public bool DeleteInspectionRecordTemplateById(int inspectionRecordTemplateId) { var db = _liteDB.GetLiteDB(); var table = db.GetCollection(tableName); table.Delete(inspectionRecordTemplateId); db.Checkpoint(); return true; } public bool SaveInspectionReportTemplateToVehicle(InspectionRecordInput inspectionRecordTemplate) { var db = _liteDB.GetLiteDB(); var table = db.GetCollection(tableName); table.Upsert(inspectionRecordTemplate); db.Checkpoint(); return true; } public bool DeleteAllInspectionReportTemplatesByVehicleId(int vehicleId) { var db = _liteDB.GetLiteDB(); var table = db.GetCollection(tableName); var planRecords = table.DeleteMany(Query.EQ(nameof(InspectionRecordInput.VehicleId), vehicleId)); db.Checkpoint(); return true; } } }