public void Delete(IHierarchyEntity doc, ITicketAutUser user)
        {
            if (doc?.Id == null)
            {
                return;
            }

            var docColl = CollectionsContainer.GetBsonDocumentContainsId(doc.GetType(), doc.Id.Value);

            if (docColl == null)
            {
                throw new KeyNotFoundException();
            }

            var filter = Builders <BsonDocument> .Filter.Eq("_id", doc.Id);

            var coll = CollectionsContainer.GetMongoCollection(docColl);

            coll.DeleteOneAsync(filter);

            CollectionsContainer.DeleteIdCollection(docColl, doc.Id.Value);

            Auditor?.AuditOperation(OperationType.Delete, doc, user);
        }