Exemple #1
0
        void loadDetails()
        {
            String query = "SELECT tbl_transactiondetails.PID, tbl_products.PName, tbl_transactiondetails.productQuantity, tbl_transactiondetails.productSubtotal FROM tbl_transactiondetails INNER JOIN tbl_products WHERE tbl_products.PID = tbl_transactiondetails.PID AND tbl_transactiondetails.transactionID = @transactionID";

            MySqlConnection databaseConnection = new MySqlConnection(connectionString);
            MySqlCommand    commandDatabase    = new MySqlCommand(query, databaseConnection);

            commandDatabase.CommandTimeout = 60;
            MySqlDataReader reader;

            commandDatabase.Parameters.AddWithValue("@transactionID", Convert.ToInt16(tbTransId.Text));

            try
            {
                databaseConnection.Open();
                reader = commandDatabase.ExecuteReader();

                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        TransactionDetailsModel tmp = new TransactionDetailsModel {
                            productID = reader.GetInt16("PID"), productName = reader.GetString("PName"), productQuantity = reader.GetInt16("productQuantity"), productSubtotal = reader.GetDouble("productSubtotal")
                        };
                        lvTransactionDetails.Items.Add(tmp);
                    }
                }
            }catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        public IActionResult Transaction(string transactionId)
        {
            ViewBag.Features = settings.Features;
            ViewBag.Setup    = settings.Setup;
            ViewBag.Chain    = chainSettings;

            ViewBag.BlockchainHeight = stats.SyncBlockIndex;

            TransactionDetailsModel trx = indexService.GetTransaction(transactionId);

            return(View(trx));
        }
Exemple #3
0
        public async Task <IActionResult> Transaction([FromRoute] string id)
        {
            var incomingTransactions = await _transactionsManager.GetIncomingTransactionsAsync();

            var outgoingTransactions = await _transactionsManager.GetOutgoingTransactionsAsync();

            Transaction             transaction;
            TransactionDetailsModel model = new TransactionDetailsModel();

            if (incomingTransactions.Any(x => x.Id == id))
            {
                transaction           = incomingTransactions.Single(x => x.Id == id);
                model.TransactionType = "Incoming Transaction";
            }
            else if (outgoingTransactions.Any(x => x.Id == id))
            {
                transaction           = outgoingTransactions.Single(x => x.Id == id);
                model.TransactionType = "Outgoing Transaction";
            }
            else
            {
                return(View(null));
            }

            model.CreationDateTime   = transaction.CreationDateTime;
            model.Amount             = transaction.Amount;
            model.Asset              = transaction.Asset.ToString();
            model.OriginatorVaan     = transaction.OriginatorVaan;
            model.OriginatorFullName = transaction.OriginatorFullName;
            model.OriginatorPostalAddressBuilding    = transaction.OriginatorPostalAddress.Building;
            model.OriginatorPostalAddressCountry     = transaction.OriginatorPostalAddress.Country.Name;
            model.OriginatorPostalAddressStreet      = transaction.OriginatorPostalAddress.Street;
            model.OriginatorPostalAddressTown        = transaction.OriginatorPostalAddress.Town;
            model.OriginatorPostalAddressAddressLine = transaction.OriginatorPostalAddress.AddressLine;
            model.OriginatorPostalAddressPostCode    = transaction.OriginatorPostalAddress.PostCode;
            model.StatusStringified = Stringify(transaction.Status);
            model.SessionId         = transaction.SessionId;
            model.Id = transaction.Id;
            model.BeneficiaryVaan               = transaction.BeneficiaryVaan;
            model.BeneficiaryFullName           = transaction.BeneficiaryFullName;
            model.SendingAddress                = transaction.SendingAddress;
            model.DestinationAddress            = transaction.DestinationAddress;
            model.TransactionHash               = transaction.TransactionHash;
            model.OriginatorPlaceOfBirthCountry = transaction.OriginatorPlaceOfBirth.Country.Name;
            model.OriginatorPlaceOfBirthDate    = transaction.OriginatorPlaceOfBirth.Date;
            model.OriginatorPlaceOfBirthTown    = transaction.OriginatorPlaceOfBirth.Town;

            return(View(model));
        }
Exemple #4
0
        public IActionResult Transaction(string transactionId)
        {
            ViewBag.Features = settings.Features;
            ViewBag.Setup    = settings.Setup;
            ViewBag.Chain    = chainSettings;

            ViewBag.BlockchainHeight = stats.SyncBlockIndex;

            TransactionDetailsModel trx = indexService.GetTransaction(transactionId);

            if (trx != null && trx.TransactionId == null)
            {
                return(RedirectToAction("BlockHash", new { hash = transactionId }));
            }

            return(View(trx));
        }
Exemple #5
0
        public async Task <IActionResult> TransactionDetails([FromBody] TransactionDetailsModel transaction)
        {
            if (!ModelState.IsValid)
            {
                return(Ok(new FailureModel {
                    ResponseCode = "90", Message = "Bad request"
                }));
            }
            string path        = "paelyt/PowerTransact/GetTransactionDetails";
            string refNumber   = _context.Transactions.Where(x => x.reference == transaction.refNumber).Select(x => x.refNumber).FirstOrDefault();
            var    Transaction = new TransactionDetailsRequestModel
            {
                amount     = transaction.amount,
                MerchantFK = transaction.MerchantFK,
                refNumber  = refNumber,
                hashValue  = Utilities.GenerateHash(config.Value.AgentId + config.Value.AgentKey + refNumber + transaction.amount)
            };
            var stringContent = new StringContent(JsonConvert.SerializeObject(Transaction), Encoding.UTF8, "application/json");
            var SId           = HttpContext.Session.GetString("SessionId");

            if (SId == null)
            {
                SId = await Utilities.GetSessionId(config);

                HttpContext.Session.SetString("SessionId", SId);
            }
            var resp = await Utilities.MakeCallPost(path, config, stringContent, SId);

            var res = JsonConvert.DeserializeObject <BuyPowerResponseModel>(await resp.Content.ReadAsStringAsync());

            res.refNumber = transaction.refNumber;
            if (res.respCode != "00")
            {
                var TransLocal = _context.Transactions.Where(x => x.reference == transaction.refNumber).FirstOrDefault();
                if (TransLocal != null)
                {
                    return(Ok(new SuccessModel {
                        Message = res.respDescription, ResponseCode = "00", Data = TransLocal
                    }));
                }
            }
            return(Ok(new SuccessModel {
                Message = res.respDescription, ResponseCode = "00", Data = res
            }));
        }
        public IActionResult Transaction(string transactionId)
        {
            ViewBag.Features = settings.Features;
            ViewBag.Setup    = settings.Setup;
            ViewBag.Chain    = chainSettings;

            ViewBag.BlockchainHeight = stats.SyncBlockIndex;

            TransactionDetailsModel trx = indexService.GetTransaction(transactionId);

            if (trx != null && trx.TransactionId == null)
            {
                return(RedirectToAction("BlockHash", new { hash = transactionId }));
            }

            if (trx.IsCoinbase)
            {
                ViewBag.TransactionType = "Coinbase";
            }
            else if (trx.IsCoinstake && trx.Outputs.Exists(o => o.OutputType == "TX_PUBKEY"))
            {
                ViewBag.TransactionType = "Stake Reward";
            }
            // Make a prediction if this is a cold stake activation transaction or a cold stake reward.
            else if (trx.IsCoinstake && trx.Outputs.Exists(o => o.OutputType == "TX_COLDSTAKE"))
            {
                ViewBag.TransactionType = "Cold Stake Reward";
            }
            else if (!trx.IsCoinstake && trx.Outputs.Exists(o => o.OutputType == "TX_COLDSTAKE"))
            {
                ViewBag.TransactionType = "Cold Stake Activation";
            }
            // This prediction can be greatly improved when we can parse the script of input, which should clearly show us this is cold stake rewards.
            else if (!trx.IsCoinstake && !trx.IsCoinbase && trx.Outputs.Count == 1 && trx.Inputs.GroupBy(z => z.InputTransactionId).Any(z => z.Count() > 1))
            {
                ViewBag.transactionType = "Cold Stake Withdraw";
            }
            else
            {
                ViewBag.TransactionType = "Normal";
            }

            return(View(trx));
        }
        public async Task <TransactionDetailsModel> Details(int?id, int user_id)
        {
            if (user_id <= 0)
            {
                throw new CustomException(404, "Id de usario no válido");
            }
            AccountsUserModel acc = new AccountsUserModel
            {
                IdARS = _unitOfWork.Accounts.GetAccountId(user_id, "ARS"),
                IdUSD = _unitOfWork.Accounts.GetAccountId(user_id, "USD")
            };

            if (acc.IdARS != null && acc.IdUSD != null)
            {
                var transaction = _unitOfWork.Transactions.FindTransaction((int)id, (int)acc.IdUSD, (int)acc.IdARS);

                if (transaction != null)
                {
                    TransactionDetailsModel tdm = _mapper.Map <TransactionDetailsModel>(transaction);

                    // I ask if its editable to show the field
                    if ((bool)transaction.Category.Editable)
                    {
                        tdm.Editable = true;
                    }
                    else
                    {
                        tdm.Editable = false;
                    }

                    tdm.TransactionLog = _mapper.Map <List <TransactionLogModel> >(await _unitOfWork.TransactionLog.GetByTransactionId(transaction.Id));
                    return(tdm);
                }
                else
                {
                    throw new CustomException(400, "No se encontró la transacción");
                }
            }
            else
            {
                throw new CustomException(404, "No se encontró alguna de las cuentas del usuario");
            }
        }
        public IActionResult Details(string id)
        {
            id = _dataProtector.UnprotectString(id);

            ErrorViewModel errorModel = new ErrorViewModel();
            GetTransactionDetailsRequestBody requestBody = BuildGetTransactionDetailsModel(id);

            ResponseDetails response = _apiHelper.SendPaymentApiRequest(requestBody);

            if (response.Success)
            {
                GetTransactionDetailsResponseBody responseBody = JsonConvert.DeserializeObject <GetTransactionDetailsResponseBody> (response.Data.ToString());

                if (responseBody.Messages.ResultCode.ToLower() == "ok")
                {
                    TransactionDetailsModel model = new TransactionDetailsModel()
                    {
                        Transaction = responseBody.Transaction
                    };

                    model.Transaction.EncryptedTransactionId = _dataProtector.Protect(model.Transaction.TransId);

                    return(View(model));
                }
                else
                {
                    errorModel.Message = responseBody.Messages.Message.First().Text;
                }
            }
            else
            {
                errorModel.Message = response.Data.ToString();
            }

            return(View("Error", errorModel));
        }