/// <summary> /// scope= get:balance /// cmd= 'get balance @p0'. /// @p0 parameter for desired currency (all for all balances) /// </summary> /// <returns></returns> public override async Task GetBalance() { int parameterCount = 1; var validateResp = ValidateParameters(null, parameterCount); if (validateResp.ResponseCode != ResponseCode.Success) { await PostMessage(GetSlackExecutionErrorMessage(validateResp.ResponseData)); return; } var currency = Currency.Unknown; var parameter = Parameters[0]; if (parameter.ToLower() != "all") { currency = Statics.GetCurrency(Parameters[0]); if (currency == Currency.Unknown) { var errorMesssage = GetSlackExecutionErrorMessage(2); //post depth=2 message => Given crypto currency either not found or not supported. errorMesssage.text = string.Format(errorMesssage.text, Parameters[0]); await PostMessage(errorMesssage); return; } } var balances = GetTeamCryptoCurrencyBalances(currency); if (!balances.Any()) { // you have no balance with this crypto currency. await PostMessage(GetSlackExecutionErrorMessage(3)); return; } //get crypto currencies by team.provider var cryptoCurrencies = GetCryptoCurrencies(); var successText = ExecutingCommand.Responses.First(p => p.Language == Team.Language && p.Depth == 0).SuccessText; var successMessage = SlackMessageGenerator.GetCryptoCurrencyBalanceMessage(balances, Team.MainCurrency, cryptoCurrencies, successText); await PostMessage(GetSlackExecutionSuccessMessage(successMessage)); }