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);
        }