public Result <ItSystemUsage, OperationFailure> Delete(int id)
        {
            using (var transaction = _transactionManager.Begin(IsolationLevel.ReadCommitted))
            {
                var itSystemUsage = GetById(id);
                if (itSystemUsage == null)
                {
                    return(OperationFailure.NotFound);
                }
                if (!_authorizationContext.AllowDelete(itSystemUsage))
                {
                    return(OperationFailure.Forbidden);
                }

                // delete it system usage
                var deleteBySystemUsageId = _referenceService.DeleteBySystemUsageId(id);
                if (deleteBySystemUsageId.Failed)
                {
                    transaction.Rollback();
                    return(deleteBySystemUsageId.Error);
                }
                _domainEvents.Raise(new EntityDeletedEvent <ItSystemUsage>(itSystemUsage));
                _usageRepository.DeleteByKeyWithReferencePreload(id);
                _usageRepository.Save();
                transaction.Commit();
                return(itSystemUsage);
            }
        }