Beispiel #1
0
        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();
        }
Beispiel #2
0
 public void AddUserCommission(UserCommission userCommission)
 {
     userCommissions.Add(userCommission);
 }