public static AjaxResponse ChangeStatus(string id, string selectedStatus, string ref_hash) { string DecryptedId = Classes.encryption.Decrypt(id); using (NpgsqlConnection conn = Classes.DB.InstBTCDB("instbtc")) { //Update Status bool updateResult = WithdrawalUtilities.UpdateCreditedStatus(conn, DecryptedId, selectedStatus, ref_hash); if (updateResult) { if (selectedStatus == "Approved") { WithdrawalUtilities.UpdateUsdValueAmount(conn, DecryptedId); var withdrawalData = WithdrawalUtilities.GetWithdrawal(conn, DecryptedId); if (withdrawalData.TransactionId == -1 && withdrawalData.Status == "Approved") { var result = InsertTransaction(conn, DecryptedId, createTransferRecord: false); if (result.ToString() != "Internal Error" && !string.IsNullOrEmpty(result.ToString())) { var updateWithdrawalTransaction = WithdrawalUtilities.UpdateTransactionId(conn, DecryptedId, Convert.ToInt32(result)); ToastrUtilities toastrUtilities = new ToastrUtilities(); if (updateWithdrawalTransaction) { toastrUtilities.SessionPush("toast", new KeyValuePair <string, string>("success", "Successfully Updated Status")); } else { toastrUtilities.SessionPush("toast", new KeyValuePair <string, string>("error", "Encountered Error Update Status")); } } } } } //Set Response AjaxResponse res = new AjaxResponse() { Success = updateResult, DocumentId = Convert.ToInt32(DecryptedId) }; return(res); } }
public static object InsertTransaction(NpgsqlConnection conn, string id, bool createTransferRecord = false) { MWithdrawal withdrawal = new MWithdrawal(); withdrawal = WithdrawalUtilities.GetWithdrawal(conn, id); Classes.Instbtc.Models.TransactionModel transaction = new Classes.Instbtc.Models.TransactionModel(); if (withdrawal.transaction_currency == "BTC") { #region Transaction Object BTC Wds transaction = new Classes.Instbtc.Models.TransactionModel() { Psp_ID = 2, Deposit_Currency = "USD", Deposit_Amount = (decimal)withdrawal.UsdConversion * -1, Exchange_Currency = "BTC", Exchange_Amount = withdrawal.Amount * -1, Created_Date = DateTime.UtcNow, Client_ID = withdrawal.UserId, Psp_Status = "Approved", Credited_Status = "Credited", type = TransactionType.WITHDRAWAL, Transaction_Currency = withdrawal.transaction_currency }; #endregion } else if (withdrawal.transaction_currency == "EUR") { #region Transaction Object BTC Wds transaction = new Classes.Instbtc.Models.TransactionModel() { Psp_ID = 2, Deposit_Currency = "EUR", Deposit_Amount = withdrawal.Amount * -1, Exchange_Currency = "EUR", Exchange_Amount = withdrawal.Amount * -1, Created_Date = DateTime.UtcNow, Client_ID = withdrawal.UserId, Psp_Status = "Approved", Credited_Status = "Credited", type = TransactionType.WITHDRAWAL, Transaction_Currency = withdrawal.transaction_currency }; #endregion } object res; if (createTransferRecord is false) { res = Classes.Instbtc.Create.Transactions.CreateTransaction(transaction); } else { res = Classes.Instbtc.Create.Transactions.CreateTransaction(transaction); if (res.ToString() != "Internal Error" && !string.IsNullOrEmpty(res.ToString())) { bool isCreateTransferSuccess = TransferUtility.CreateTransfer((int)res, transaction); if (isCreateTransferSuccess) { return(res); } else { res = "Error"; } } } return(res); }