Exemplo n.º 1
0
        private async void RecordReferersTransaction(UserTransaction userTransaction)
        {
            var referTransaction = _mapper.Map <UserTransaction>(userTransaction);

            referTransaction.TransactionFee        = 1 * transactionFee;
            referTransaction.UserPoint             = PointFunctions.GetBonus(userTransaction.Amount, false);
            referTransaction.Amount                = 0.0m;
            referTransaction.User                  = userTransaction.User.Referer;
            referTransaction.Transactions          = new List <AppTransaction>();
            referTransaction.AdditionalInformation = null;
            referTransaction.Balance               = referTransaction.UserPoint + await GetUsersPoint(userTransaction.User.Id.ToString());

            _context.Add(referTransaction);
            //  _context.Add(transaction);
            // var publicTransactions = _repo.PublicPaymentTransactions.Where(u => u.UserId == user.Id);
            // var count = await publicTransactions.CountAsync();
            // if(count > maxCount + 1) {
            //     // var newPublicTransactions = publicTransactions.OrderByDescending(d => d.DateCreated).Take(maxCount);
            //     var mergePublicTransactions = publicTransactions.OrderByDescending(d => d.DateCreated).TakeLast(count - maxCount);
            //     var newPublicTransactions = new PublicPaymentTransaction(){
            //         DateCreated = DateTime.MinValue
            //     };

            //     foreach (var trans in mergePublicTransactions)
            //     {
            //         newPublicTransactions.Points += trans.Points;
            //         newPublicTransactions.RefererPoint += trans.RefererPoint;
            //         newPublicTransactions.Amount += trans.Amount;
            //     }

            //     _context.Delete(mergePublicTransactions);
            //     _context.Add(newPublicTransactions);
            // }
        }
Exemplo n.º 2
0
        public async void RecordTransaction(UserTransaction userTransaction, RechargeRequestResource rechargeRequestResource)
        {
            userTransaction.DateCreated           = DateTime.Now;
            userTransaction.TransactionFee        = 2 * transactionFee;
            userTransaction.UserPoint             = PointFunctions.GetBonus(userTransaction.Amount);
            userTransaction.AdditionalInformation = rechargeRequestResource.AdditionalInformation();
            if (userTransaction.User.RefererId != null)
            {
                RecordReferersTransaction(userTransaction);
            }

            userTransaction.Balance = userTransaction.UserPoint + await GetUsersPoint(userTransaction.User.Id.ToString());

            _context.Add(userTransaction);

            // var Transaction = new UserTransaction() {
            //     UserId = e.User.Id,
            //     RefererId = e.User.RefererId,
            //     Amount = e.Transaction.Amount,
            //     // Points = Functions.GetBonus(e.Transaction.amount),
            //     // RefererPoint = Functions.GetBonus(e.Transaction.amount, false),
            //     // PaymentType = e.Transaction.PaymentType(),
            //     AdditionalInformation = e.Transaction.AdditionalInformation(),
            //     DateCreated = DateTime.Now,
            //     TransactionFee = .015m * e.Transaction.Amount
            // };
            // _context.Add(Transaction);

            // if(!await _context.SaveAll()){
            //     throw new Exception("Failed to save transaction");
            // }

            // RecordPublicTransaction(_mapper.Map<UserTransaction, PublicPaymentTransaction>(Transaction), e.User);
        }