/// <summary> /// scope= get:balance /// cmd= 'get inv @p0'. /// @p0 parameter for desired currency (all for all investments) /// </summary> /// <returns></returns> public override async Task GetInvestment() { 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 investments = GetTeamInvestments(currency); if (!investments.Any()) { // you have no investment with this crypto currency. await PostMessage(GetSlackExecutionErrorMessage(3)); return; } var successText = ExecutingCommand.Responses.First(p => p.Language == Team.Language && p.Depth == 0).SuccessText; var successMessage = SlackMessageGenerator.GetInvestmentMessage(investments, Team.MainCurrency, successText); await PostMessage(GetSlackExecutionSuccessMessage(successMessage)); }