public bool RegistrationUndefinedTransfer(int paymentTransferId, int?paymentSysId) { try { return(DbProcessing.RegistrationUndefinedTransfer(paymentTransferId, paymentSysId)); } catch (Exception ex) { Logger.Error("RegistrationUndefinedTransfer() - ошибка при зачислении средств на кошелёк", ex); return(false); } }
/// <summary> /// Зачисление средств в T# кошелёк пользователя /// </summary> /// <param name="walletId">всегда должен быть только один, иначе один платёж в платёжной системе увеличит средства нескольких пользователей</param> /// <param name="currency"></param> /// <param name="amount"></param> /// <param name="data"></param> public bool DepositOnWallet(int walletId, string currency, decimal amount, DateTime data) { try { var userPaymentSysId = DbProcessing.GetUserPaymentSysId(walletId); if (!userPaymentSysId.HasValue) { return(false); } var wallet = DbProcessing.GetWalletById(walletId); if (wallet == null) { return(false); } var additionalAmount = amount; if (wallet.Currency != currency) // Нужно конвертировать средства в валюту T# кошелька { var convertAmount = PaymentProcessor.ConvertPaySysCurrencyToWalletCurrency(wallet.Currency, currency, (double)amount); if (!convertAmount.HasValue) { var message = string.Format( "Не удалось произвести зачисление на TradeSharp кошелёк {0} средств в размере {1} {2}. \r\n" + "Причина: не удалось сконвертировать валюту перевода {2} в валюту целевого TradeSharp кошелька {3}. \r\n" + "Будет произведена попытка провести платёж как 'Неопознанный'. Администратор базы данных должен вручную зачислить \r\n" + "средства на этот кошелёк, внеся изменения в таблицы WALLET и PAYMENT_SYSTEM_TRANSFER.", wallet.User, amount.ToStringUniformMoneyFormat(), currency, wallet.Currency); Logger.Error(message); return(false); } additionalAmount = convertAmount.Value; } // Сохраняем всё в базу данных return(DbProcessing.DepositOnWallet(wallet, additionalAmount, data, userPaymentSysId.Value)); } catch (Exception ex) { Logger.Error("DepositOnWallet - ошибка при зачислении средств на кошелёк", ex); return(false); } }