/// <summary> /// scope= set:balance /// cmd= 'set rev @p0 @p1 @p2'. /// @p0 parameter for desired currency /// @p1 parameter for revenue name /// @p2 parameter for revenue amount /// </summary> /// <returns></returns> public override async Task SetRevenue() { int parameterCount = 3; string balanceAmountText = string.Empty; if (Parameters.Length > 2) { balanceAmountText = Parameters[2]; } var parameterSet = new List <CommandParameter> { new CommandParameter { Depth = 3, ParameterValue = balanceAmountText, IsNumber = true } }; var validateResp = ValidateParameters(parameterSet, parameterCount); if (validateResp.ResponseCode != ResponseCode.Success) { await PostMessage(GetSlackExecutionErrorMessage(validateResp.ResponseData)); return; } var 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; } decimal balanceAmount = Parameters[2].ToMoneyMarketDecimalFormat(); //everytihng is fine. add or update investment. var teamInvestmentBusiness = new TeamInvestmentBusiness(); var revenue = new Dto.TeamInvestment { TeamId = Team.Id, Currency = currency, Name = Parameters[1].ToLower(), Balance = balanceAmount, IsRevenue = true }; if (balanceAmount == 0) { teamInvestmentBusiness.Delete(revenue); //revenue has been deleted. await PostMessage(GetSlackExecutionSuccessMessage(1)); return; } teamInvestmentBusiness.Add(revenue); await PostMessage(GetSlackExecutionSuccessMessage()); }
private IEnumerable <Dto.TeamInvestment> GetTeamRevenues(Currency currency) { var teamInvestmentBusiness = new TeamInvestmentBusiness(); return(teamInvestmentBusiness.GetTeamRevenues(Team.Id, currency)); }