Ejemplo n.º 1
0
 public OnePayTransaction SaveTransaction(TransactionItemDTO transaction, bool status)
 {
     try
     {
         _transaction = new OnePayTransaction();
         _transaction.TransactionId            = "T" + RandomNumerGenerator.GetRandomNumber(10);
         _transaction.TransactionComment       = "Transaction from OnePay for AccountId";
         _transaction.TransactionAmount        = transaction.TransactionAmount;
         _transaction.UserId                   = transaction.UserId;
         _transaction.AccountId                = transaction.AccountId;
         _transaction.PaccountId               = transaction.PAccountId;
         _transaction.TransactionTypeId        = transaction.TransactionType;
         _transaction.TransactionStatusId      = (status) ? (int)TransactionStatusTypes.Successful : (int)TransactionStatusTypes.Declined;
         _transaction.TransactionProvideTypeId = transaction.TransactionProviderType;
         _transaction.Timestamp                = DateTime.Now.ToString();
         if (_transaction != null)
         {
             _context.OnePayTransaction.Add(_transaction);
             _context.SaveChanges();
         }
     }
     catch (AppException ex)
     {
         throw new AppException("Transaction not successful", ex.Message);
     }
     return(_transaction);
 }
Ejemplo n.º 2
0
 public void EndTransaction(OnePayTransaction transaction, User user)
 {
     //call messaging Service
     try
     {
         _messagingService.SendMessage(user, transaction);
     }
     catch (AppException ex)
     {
         throw new AppException("Message could not be sent" + ex);
     }
 }
Ejemplo n.º 3
0
        public string SendMessage(User user, OnePayTransaction onePayTransaction)
        {
            string APIKey = Startup.APIKEY;

            try
            {
                string recipient      = user.UserPhoneNumber;
                string sender         = "TXTLCL";
                string message        = $"{onePayTransaction.TransactionAmount} has been deducted from {onePayTransaction.AccountId}.Message sent by OnePayBank";
                string encodedMessage = HttpUtility.UrlEncode(message);
                var    status         = "";
                using (var webClient = new WebClient())
                {
                    //    byte[] response = webClient.UploadValues(Startup.APIURL, new NameValueCollection()
                    //{
                    //    {"apikey",APIKey},
                    //    {"numbers",recipient},
                    //    {"message",encodedMessage},
                    //    {"sender",sender}});
                    //    string result = System.Text.Encoding.UTF8.GetString(response);
                    //    var jsonObject = JObject.Parse(result);
                    status = "Success";
                }
                if (status == "Success")
                {
                    SaveMessage(message, recipient, sender, status, user.UserId);
                }
                else
                {
                    SaveMessage(message, recipient, sender, status, user.UserId);
                }
                return(status);
            }
            catch (AppException)
            {
                throw new AppException("Message not Delivered");
            }
        }
Ejemplo n.º 4
0
        public void ExecuteTransaction(TransactionItemDTO transaction, UserAccount userAccount, BusinessProduct bProduct, User user)
        {
            bool debitStatus, creditStatus = false;

            debitStatus = DebitAmount(userAccount.UserId, transaction.AccountId, transaction.TransactionAmount);
            if (debitStatus)
            {
                creditStatus = CreditAmount(userAccount.UserId, transaction.PAccountId, transaction.TransactionAmount);
                OnePayTransaction transactionObj = null;
                //call transaction service
                try
                {
                    transactionObj = _transactionService.SaveTransaction(transaction, creditStatus);
                }
                catch (AppException ex)
                {
                    throw new AppException("Transaction Not Successful", ex.Message);
                }
                if (transactionObj.TransactionId != null)
                {
                    EndTransaction(transactionObj, user);
                }
            }
        }