public async IAsyncEnumerable <MessageResponse> QueryBalance(Message message, string symbol) { symbol = symbol.ToUpperInvariant(); yield return("查询中……"); UserInfo user; try { user = await _backendService.GetUserByTelegramIdAsync(message.From.Id); } catch (MatatakiUserNotFoundException) { throw new HandlerException("抱歉,您还没有绑定 Matataki 帐号"); } TokenInfo token; try { token = await _backendService.GetTokenAsync(symbol); } catch (TokenNotFoundException) { throw new HandlerException("抱歉,没有这样的 Fan 票"); } var balance = await _minetokenService.GetBalanceAsync(token.ContractAddress, user.WalletAddress); yield return(Markdown($"{balance} [{symbol}]({_matatakiService.GetTokenPageUrl(token.Id)})")); }
public async Task <MessageResponse> Handle(Message message) { var builder = new StringBuilder(); UserInfo?user = null; try { user = await _backendService.GetUserByTelegramIdAsync(message.From.Id); builder.AppendLine($"瞬Matataki 昵称: [{user.Name}]({_matatakiService.GetUserPageUrl(user.Id)})"); } catch { builder.AppendLine("没有绑定 Matataki"); } if (user?.IssuedTokens?.Length > 0) { var token = user.IssuedTokens[0]; builder.AppendLine($"Fan票 名称:[{token.Symbol} ({token.Name})]({_matatakiService.GetTokenPageUrl(user.IssuedTokens[0].Id)})"); } else { builder.AppendLine("没有发行 Fan 票"); } return(Markdown(builder.ToString())); }