/// <summary> /// Delete single record from database /// </summary> /// <param name="record">Record to delete</param> public void Delete(BacktraceDatabaseRecord record) { if (BacktraceDatabaseContext != null) { BacktraceDatabaseContext.Delete(record); } }
/// <summary> /// Validate database size - check how many records are stored /// in database and how much records need space. /// If space or number of records are invalid /// database will remove old reports /// </summary> private bool ValidateDatabaseSize() { //check how many records are stored in database //remove in case when we want to store one more than expected number //If record count == 0 then we ignore this condition var noMoreSpaceForReport = ReachedMaximumNumberOfRecords(); //check database size. If database size == 0 then we ignore this condition //remove all records till database use enough space var noMoreSpace = ReachedDiskSpaceLimit(); if (noMoreSpaceForReport || noMoreSpace) { //if your database is entry or every record is locked //deletePolicyRetry avoid infinity loop int deletePolicyRetry = 5; while (ReachedDiskSpaceLimit() || ReachedMaximumNumberOfRecords()) { var lastRecord = BacktraceDatabaseContext.LastOrDefault(); if (lastRecord != null) { BacktraceDatabaseContext.Delete(lastRecord); BacktraceDatabaseFileContext.Delete(lastRecord); } deletePolicyRetry--; if (deletePolicyRetry == 0) { break; } } return(deletePolicyRetry != 0); } return(true); }
/// <summary> /// Delete single record from database /// </summary> /// <param name="record">Record to delete</param> public void Delete(BacktraceDatabaseRecord record) { BacktraceDatabaseContext?.Delete(record); }