public IResponse feedRecord(int trxid, [FromForm] Record rr)
        {
            try
            {
                int domain_id = _transactionManager.GetTransaction(trxid).domain_id;

                if (rr.domain_id <= 0)
                {
                    rr.domain_id = domain_id;
                }

                if (_transactionManager.AddTransaction(trxid, GetInsertRecordQuery(rr), rr, Models.PowerDNS.Enums.TransactionMode.INSERT))
                {
                    return(new BoolResponse {
                        result = true
                    });
                }
                else
                {
                    return(new BoolResponse {
                        result = false
                    });
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(new BoolResponse {
                    Log = new List <string>()
                    {
                        $"Failed to feed/Insert record {rr.qname}"
                    }, result = false
                });
            }
        }
示例#2
0
 /// <summary>
 /// Bengins the transaction.
 /// </summary>
 /// <returns>An ITransaction.</returns>
 public ITransaction BenginTransaction()
 {
     if (_isBeginTransaction)
     {
         _transaction = new Transaction(_connectFactory);
         _transactionManager?.AddTransaction(_transaction);
     }
     else
     {
         _transaction = new InnerTransaction();
         _transactionManager?.AddTransaction(_transaction);
     }
     return(_transaction);
 }
        public async Task RecordDepositTransactionAsync(Guid bankingAccountId, decimal amount, CancellationToken cancellationToken = default(CancellationToken))
        {
            var account = await accountRepository.GetByIdAsync(bankingAccountId, cancellationToken);

            if (account == null)
            {
                throw new AccountNotFoundException(bankingAccountId);
            }

            var depositTransaction = new DepositTransaction(account, amount);

            transactionManager.AddTransaction(depositTransaction);

            await transactionManager.ProcessTransactionsAsync();
        }
示例#4
0
        /// <summary>
        /// Add a new view to the layout
        /// </summary>
        /// <returns><see cref="Marioneta.MRelativeLayout"/></returns>
        /// <param name="viewToBePlaced">The view to be placed</param>
        public RelativeBuilder AddView(View viewToBePlaced)
        {
            if (viewToBePlaced == null)
            {
                throw new ArgumentNullException("viewToBePlaced");
            }

            var isDuplicated = _transactionManager.ContainsTransaction(viewToBePlaced);

            if (isDuplicated)
            {
                throw new DuplicatedViewException("MRelativeLayout.AddView() -- This view already exists");
            }

            var newTransaction = new Transaction();

            _transactionManager.AddTransaction(viewToBePlaced, newTransaction);

            ChangeContext(viewToBePlaced);

            return(this);
        }
        /// <summary>
        /// Creator: Jaeho Kim
        /// Created: 03/25/2020
        /// Approver: Rasha Mohammed
        ///
        /// Completes the transaction and performs the transaction entry operation.
        /// </summary>
        /// <remarks>
        /// Updater: NA
        /// Updated: NA
        /// Update: NA
        /// </remarks>
        /// <param name="e"></param>
        /// <param name="sender"></param>
        private void btnCompleteTransaction_Click(object sender, RoutedEventArgs e)
        {
            var transactionType   = new TransactionType();
            var transactionStatus = new TransactionStatus();

            // This transactionDate operation
            // involves ignoring Milliseconds.
            // Seconds do count however!
            DateTime transactionDate = DateTime.Now;

            transactionDate = new DateTime(
                transactionDate.Ticks -
                (transactionDate.Ticks % TimeSpan.TicksPerSecond),
                transactionDate.Kind
                );
            // end transactionDate ignore milliseconds operation.

            var transaction = new Transaction();

            try
            {
                // This is for practical purposes. A cashier should not have to
                // constantly put in the transaction type for each transaction.
                // A default transaction type is retrieved from the database
                // everytime the transaction type text is empty.
                if (cbTransactionType.Text == "")
                {
                    transactionType        = _transactionManager.RetrieveDefaultTransactionType();
                    cbTransactionType.Text = transactionType.TransactionTypeID;
                }

                if (cbTransactionStatus.Text == "")
                {
                    transactionStatus        = _transactionManager.RetrieveDefaultTransactionStatus();
                    cbTransactionStatus.Text = transactionStatus.TransactionStatusID;
                }

                // if the transaction type was return or void, the values for item quantity
                // and total calculations must be negative.
                if (cbTransactionType.Text == "return")
                {
                    subTotalTaxable *= -1;
                    subTotal        *= -1;
                    total           *= -1;
                }

                if (cbTransactionType.Text == "void")
                {
                    subTotalTaxable *= -1;
                    subTotal        *= -1;
                    total           *= -1;
                }

                transaction.TransactionDateTime = transactionDate;
                transaction.TaxRate             = taxRate;
                transaction.SubTotalTaxable     = subTotalTaxable;
                transaction.SubTotal            = subTotal;
                transaction.Total               = total;
                transaction.TransactionTypeID   = cbTransactionType.Text.ToString();
                transaction.EmployeeID          = employeeID;
                transaction.TransactionStatusID = cbTransactionStatus.Text.ToString();
                transaction.TaxExemptNumber     = txtTaxExemptNumber.Text.ToString();

                transaction.CustomerEmail = txtEmail.Text.ToString();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "\n\n" + "Please set the default transaction type or status!");
            }

            var transactionLineProducts       = new TransactionLineProducts();
            List <ProductVM> ProductsSoldList = new List <ProductVM>();

            foreach (var item in _transactionManager.GetAllProducts())
            {
                // return transaction type!
                if (cbTransactionType.Text == "return")
                {
                    item.Quantity *= -1;
                }

                // return transaction type!
                if (cbTransactionType.Text == "void")
                {
                    item.Quantity *= -1;
                }
                ProductsSoldList.Add(item);
            }

            transactionLineProducts.ProductsSold = ProductsSoldList;

            try
            {
                // Creating the transaction in the database
                if (transaction.SubTotal != 0)
                {
                    if (collectPayment(transaction))
                    {
                        _transactionManager.AddTransaction(transaction);
                        _transactionManager.AddTransactionLineProducts(transactionLineProducts);
                        _transactionManager.EditItemQuantity(transactionLineProducts);

                        txtSearchProduct.Text   = "";
                        txtItemName.Text        = "";
                        chkTaxable.IsChecked    = false;
                        txtPrice.Text           = "";
                        txtQuantity.Text        = "";
                        txtItemDescription.Text = "";


                        cbTransactionType.Text   = "";
                        cbTransactionStatus.Text = "";

                        txtTaxExemptNumber.Text = "";
                        txtEmail.Clear();

                        txtTotal.Text           = "";
                        txtSubTotal.Text        = "";
                        txtSubTotalTaxable.Text = "";

                        dgShoppingCart.ItemsSource = null;
                        subTotalTaxable            = 0.0M;
                        subTotal = 0.0M;
                        total    = 0.0M;
                        _transactionManager.ClearShoppingCart();

                        btnAddProduct.Visibility = Visibility.Hidden;



                        MessageBox.Show("Transaction Complete", "Success", MessageBoxButton.OK, MessageBoxImage.Information);
                    }
                    else
                    {
                        WPFErrorHandler.ErrorMessage("Payment Processing incomplete.");
                    }
                }
                else
                {
                    MessageBox.Show("Could Not Add Transaction!");
                }
            }
            catch (ApplicationException ae)
            {
                MessageBox.Show(ae.Message + "\n\n" + "You Must Enter Transaction Admin Data!");
            }
        }
示例#6
0
 public ViewResult Thanks(Cart cart, CompleteCheckoutViewModel completeCheckoutViewModel, string stripeChargeID)
 {
     if (cart != null && completeCheckoutViewModel != null)
     {
         decimal subTotalTaxFree = 0.0M;
         decimal subTotalTaxable = 0.0M;
         var     productAmounts  = new Dictionary <DataTransferObjects.Product, int>();
         var     productsSold    = new List <ProductVM>();
         foreach (var line in cart.Lines)
         {
             productAmounts.Add(line.Product, line.Amount);
             productsSold.Add(new ProductVM
             {
                 Name            = line.Product.Name,
                 ItemName        = line.Product.Name,
                 Active          = line.Product.Active,
                 Brand           = line.Product.Brand,
                 Category        = line.Product.Category,
                 Description     = line.Product.Description,
                 ItemDescription = line.Product.Description,
                 ItemID          = line.Product.ItemID,
                 Quantity        = line.Amount,
                 ItemQuantity    = line.Amount,
                 Price           = line.Product.Price,
                 ProductID       = line.Product.ProductID,
                 Taxable         = line.Product.Taxable,
                 Type            = line.Product.Type
             });
             if (!line.Product.Taxable)
             {
                 subTotalTaxFree += line.Product.Price * line.Amount;
             }
             else
             {
                 subTotalTaxable += line.Product.Price * line.Amount;
             }
         }
         decimal subTotalWithTax = subTotalTaxable * (1 + completeCheckoutViewModel.OrderDetails.TaxRate);
         subTotalTaxable += subTotalTaxFree;
         var transaction = new Transaction
         {
             CustomerEmail       = completeCheckoutViewModel.OrderDetails.Email,
             StripeChargeID      = stripeChargeID,
             EmployeeID          = 100000, // Admin account user id
             SubTotal            = subTotalTaxFree,
             SubTotalTaxable     = subTotalTaxable,
             TaxRate             = completeCheckoutViewModel.OrderDetails.TaxRate,
             TransactionDateTime = DateTime.Now,
             TransactionStatusID = "Completed",
             TransactionTypeID   = "Online Sale",
             Total          = subTotalWithTax + subTotalTaxFree,
             ProductAmounts = productAmounts
         };
         _transactionManager.AddTransaction(transaction);
         var lineProducts = new TransactionLineProducts {
             ProductsSold = productsSold
         };
         _transactionManager.AddTransactionLineProducts(lineProducts);
     }
     cart.Clear();
     _transactionManager = new TransactionManager();
     return(View());
 }