public async Task <DomainValidationResult <Credential> > UnlinkCredentialAsync(Credential credential) { var result = new DomainValidationResult <Credential>(); if (credential.Timestamp > DateTime.UtcNow.AddMonths(-1)) { result.AddFailedPreconditionError($"You will have the right to unlink your {credential.Game.DisplayName} credentials in {(credential.Timestamp - DateTime.UtcNow.AddMonths(-1)).Days} days."); } if (result.IsValid) { credential.Delete(); await _gameCredentialRepository.UnitOfWork.CommitAsync(); _gameCredentialRepository.DeleteCredential(credential); await _gameCredentialRepository.UnitOfWork.CommitAsync(); return(credential); } return(result); }