public async Task AddOrUpdateUserCommissionAsync(string currencyName, Guid userId, decimal?depositRelativeCommission, decimal?withdrawRelativeCommission, decimal?transferRelativeCommission) { var userCommission = await UserCommissions.FirstOrDefaultAsync(x => x.UserId == userId && x.CurrencyName == currencyName); var isCreate = false; if (userCommission == null) { var user = await Users.FirstOrDefaultAsync(x => x.Id == userId); if (user == null) { return; } var currency = await GetCurrencyAsync(currencyName); userCommission = new UserCommission { Id = Guid.NewGuid(), User = user, Currency = currency }; isCreate = true; } if (depositRelativeCommission.HasValue) { userCommission.DepositRelativeCommission = depositRelativeCommission.Value; } if (withdrawRelativeCommission.HasValue) { userCommission.WithdrawRelativeCommission = withdrawRelativeCommission.Value; } if (transferRelativeCommission.HasValue) { userCommission.TransferRelativeCommission = transferRelativeCommission.Value; } if (isCreate) { await UserCommissions.AddAsync(userCommission); } await SaveChangesAsync(); }
public void AddUserCommission(UserCommission userCommission) { userCommissions.Add(userCommission); }