public string Sign(TokenPayload payload)
        {
            //var issue = _context.TokenIssueList.CreateProxy();
            var issue = new TokenIssueList();

            {
                issue.HoldingAccount = payload.AccountId;
                issue.Reason         = (int)payload.Purpose;
                issue.IssueTime      = _time.UtcNow;
                issue.ValidUntil     = payload.ValidTo;
            };

            _context.TokenIssueList.Add(issue);

            _context.SaveChanges();

            payload.TokenId = issue.TokenSerial;

            return(_signer.Encode(payload.ToPayloadBytes()));
        }