Esempio n. 1
0
        private string HandleNewUser(ITweet tweet, string targetAddress, RewardType rewardType)
        {
            var canWithdraw = _withdrawalService.CanExecuteAsync(rewardType).GetAwaiter().GetResult();

            if (!canWithdraw)
            {
                _logger.Warning("Not enough funds for withdrawal.");
                return(string.Format(_appSettings.BotSettings.MessageFaucetDrained, tweet.CreatedBy.Name));
            }

            _withdrawalService.ExecuteAsync(rewardType, targetAddress).GetAwaiter().GetResult();
            _statService.AddStat(DateTime.UtcNow, _amountHelper.GetAmount(rewardType), true);

            var reward = new Reward
            {
                Id             = tweet.CreatedBy.Id,
                Followers      = tweet.CreatedBy.FollowersCount,
                LastRewardDate = DateTime.UtcNow,
                Withdrawals    = 1
            };

            _rewardCollection.Insert(reward);

            return(string.Format(_appSettings.BotSettings.MessageRewarded, tweet.CreatedBy.ScreenName,
                                 _amountHelper.GetAmount(rewardType)));
        }