예제 #1
0
        private void DepositCryptocurrency(Member user, decimal amountInCryptocurrency)
        {
            Money   moneyAmount = ConvertToMoney(amountInCryptocurrency);
            LogType LogType     = ErrorLoggerHelper.GetTypeFromProcessor(DepositApiProcessor);

            user.Reload();

            if (DepositTarget == DepositTargetBalance.PurchaseBalance)
            {
                user.AddToPurchaseBalance(moneyAmount, Code + " deposit", BalanceLogType.Other);
                user.SaveBalances();
            }
            if (DepositTarget == DepositTargetBalance.CashBalance)
            {
                user.AddToCashBalance(moneyAmount, Code + " deposit", BalanceLogType.Other);
                user.SaveBalances();

                //Referral commission for sponsors when user does Cash Balance deposit
                CashBalanceCrediter Crediter = (CashBalanceCrediter)CrediterFactory.Acquire(user, CreditType.CashBalanceDeposit);
                Crediter.TryCreditReferer(moneyAmount);
            }
            if (DepositTarget == DepositTargetBalance.Wallet)
            {
                user.AddToCryptocurrencyBalance(Type, amountInCryptocurrency, Code + " Wallet deposit", BalanceLogType.WalletDeposit);
            }

            PaymentProportionsManager.MemberPaidIn(moneyAmount, CryptocurrencyTypeHelper.ConvertToPaymentProcessor(Type), user);
            History.AddTransfer(user.Name, moneyAmount, Code + " deposit", DepositTarget.ToString());

            ContestManager.IMadeAnAction(ContestType.Transfer, user.Name, moneyAmount, 0);
        }
    public void Accept()
    {
        try
        {
            var user = new Member(UserId);

            CryptocurrencyObject.MakeWithdrawal(Amount, Address, user, WithdrawalSourceBalance);
            Status = WithdrawRequestStatus.Accepted;
        }
        catch (MsgException msg)
        {
            throw msg;
        }
        catch (Exception ex)
        {
            ErrorLogger.Log(ex.Message, ErrorLoggerHelper.GetTypeFromProcessor(CryptocurrencyObject.WithdrawalApiProcessor), true);
        }
        finally
        {
            Save();
        }
    }
예제 #3
0
    public static void logPayout(string message, TransactionRequest request, TransactionResponse response,
                                 string paymentProcessor)
    {
        PaymentProcessor processor = PaymentAccountDetails.GetFromStringType(paymentProcessor);

        ErrorLogger.Log(String.Format(@"{0}:
                        PayoutRequest ID: {1}
                        Raw response: {2}", message, request.PayeeId, response.RawResponse), ErrorLoggerHelper.GetTypeFromProcessor(processor), true);
    }