/// <summary> /// Delete any auditing entries from AuditObjects collection. /// WARNING: Source item MUST exist in order to delete from auditing using this method. /// To delete auditing history for a non-existant object, us the DeleteFromAuditing(DocumentAuditEnum, ID) overload. /// </summary> /// <param name="auditType"></param> /// <param name="criteria"></param> public void DeleteFromAuditing(DocumentAuditEnum auditType, Expression <Func <T, bool> > criteria) { string colName = MongoUtil.GetCollectioNameFromInterface <T>(); if (colName == "AuditObjects") { throw new Exception( "RepositoryMongo.DeleteFromAuditing cannot be used for audit objects themselves. To delete an AuditOjbect, use the Delete method"); } var audit = typeof(T).GetCustomAttributes(typeof(DocumentAuditAttr), false).SingleOrDefault(); if (audit != null) { var sourceObjects = All(criteria); if (((audit as DocumentAuditAttr).AuditEnum & DocumentAuditEnum.Edit) == DocumentAuditEnum.Edit) { foreach (var soureObject in sourceObjects) { Repositories.Instance.Repository <AuditObject>(_mongoConfig).Delete(x => x.Action == "UPD" && x.Source == colName && x.OriginalId == soureObject._id); } } if (((audit as DocumentAuditAttr).AuditEnum & DocumentAuditEnum.Delete) == DocumentAuditEnum.Delete) { //delete where action = "DEL"; foreach (var soureObject in sourceObjects) { Repositories.Instance.Repository <AuditObject>(_mongoConfig).Delete(x => x.Action == "DEL" && x.Source == colName && x.OriginalId == soureObject._id); } } } }
public void DeleteFromAuditing(DocumentAuditEnum auditType, string id) { if ((auditType & DocumentAuditEnum.Edit) == DocumentAuditEnum.Edit) { Repositories.Instance.Repository <AuditObject>(_mongoConfig).Delete(x => x.Action == "UPD" && x.Source == MongoUtil.GetCollectioNameFromInterface <T>() && x.OriginalId == id); } if ((auditType & DocumentAuditEnum.Delete) == DocumentAuditEnum.Delete) { Repositories.Instance.Repository <AuditObject>(_mongoConfig).Delete(x => x.Action == "DEL" && x.Source == MongoUtil.GetCollectioNameFromInterface <T>() && x.OriginalId == id); } }