private void OnUserTraded(object sender, UserTradedEventArgs e) { _logger.Verbose($"The user with Id {e.UserId} seems to be trading."); var userProfit = _ups.GetUserProfit(e.UserId); if (IsProfitableUser(userProfit)) { _logger.Information($"The user with Id {e.UserId} seems to be profitable."); var eventArgs = new ProfitableUserTradedEventArgs() { UserId = e.UserId, TradeId = e.TradeId, Report = userProfit, }; ProfitableUserTraded?.Invoke(this, eventArgs); } }
private TradeRegistrationContext ProcessRegisteredUsers(TradeRegistrationContext context, List <BinanceUser> users) { foreach (var user in users) { var isOldBuyer = string.Equals(context.BuyingPair.Symbol, user.CurrentWallet.Symbol); var pair = isOldBuyer ? context.SellingPair : context.BuyingPair; var newWallet = new Wallet() { OwnerId = user.Identifier, Symbol = pair.Symbol, Balance = pair.Amount, WalletCreatedFromTradeId = context.Trade.TradeId, }; user.WalletsHistory.Add(newWallet); _repository.AddOrUpdateUser(user); _logger.Debug($"User with Id {user.Identifier} got updated."); UserTraded?.Invoke(this, UserTradedEventArgs.Create(user.Identifier, context.Trade.TradeId)); } return(context); }