public void GetTotalPrice_ThreeApplesTwoBiscuitsOneUnkownItem_TotalPriceMatchExpectedPrice()
        {
            // Arrange
            decimal         expectedPrice   = 2.70m;
            CheckoutManager checkoutManager = new CheckoutManager();
            Item            apple           = new Item()
            {
                Sku = "A99"
            };

            Item biscuit = new Item()
            {
                Sku = "B15"
            };

            Item unkownItem = new Item()
            {
                Sku = "C40"
            };

            // Act
            checkoutManager.Scan(apple);
            checkoutManager.Scan(biscuit);
            checkoutManager.Scan(apple);
            checkoutManager.Scan(biscuit);
            checkoutManager.Scan(unkownItem);
            checkoutManager.Scan(apple);

            // Assert
            decimal price = checkoutManager.Total();

            Assert.AreEqual(price, expectedPrice);
        }
        public void GetDicountPrice_ThreeApplesTwoBiscuits_DiscountPriceMatchExpectedPrice()
        {
            // Arrange
            decimal         expectedPrice   = 1.75m;
            CheckoutManager checkoutManager = new CheckoutManager();
            Item            apple           = new Item()
            {
                Sku = "A99"
            };

            Item biscuit = new Item()
            {
                Sku = "B15"
            };

            // Act
            checkoutManager.Scan(apple);
            checkoutManager.Scan(biscuit);
            checkoutManager.Scan(apple);
            checkoutManager.Scan(biscuit);
            checkoutManager.Scan(apple);

            // Assert
            decimal price = checkoutManager.TotalOfferInclusive();

            Assert.AreEqual(price, expectedPrice);
        }
        public void Scan_NullItem_ThrowException()
        {
            // Arrange
            CheckoutManager checkoutManager = new CheckoutManager();

            // Assert
            Assert.ThrowsException <Exception>(() => checkoutManager.Scan(null));
        }
        private void asyncCheckoutBtn_Click(object sender, EventArgs e)
        {
            textBoxResult.Clear();

            if (this.m_status == CheckoutManagerState.idle)
            {
                string files = GetFiles();

                // Create configuration
                Item configuration = m_inn.newItem();
                configuration.loadAML(files);

                // Create Aras.IOME.CheckoutManager
                m_cmgr = new CheckoutManager(configuration);

                // Lock all items in the configuration (!File, !Vault, !Located)
                Item lockResult = m_cmgr.Lock();

                if (lockResult.isError())
                {
                    MessageBox.Show(lockResult.getErrorString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                int    numberOfThreads = (int)thCount.Value;
                string targetFolder    = textBoxDestination.Text;

                // Event handlers are attached to Aras.IOME.CheckoutManager events.
                m_cmgr.DownloadFileCompleted        += new Aras.IOME.DownloadFileCompletedEventHandler(HandleDownloadFileCompleted);
                m_cmgr.DownloadFilesCompleted       += new Aras.IOME.DownloadFilesCompletedEventHandler(HandleDownloadFilesCompleted);
                m_cmgr.DownloadFilesProgressChanged += new Aras.IOME.DownloadFilesProgressChangedEventHandler(HandleDownloadFileProgressChanged);

                this.m_failed_count = 0;
                progressBar.Value   = 0;

                // Begin download files asynchronously
                m_cmgr.DownloadFilesAsync(targetFolder, numberOfThreads);

                // Toggle button state
                cancelBtn.Enabled     = true;
                asyncCheckoutBtn.Text = "Pause";
                this.m_status         = CheckoutManagerState.running;
            }
            else if (this.m_status == CheckoutManagerState.running)
            {
                m_cmgr.DownloadFilesPauseAsync();
                cancelBtn.Enabled     = false;
                asyncCheckoutBtn.Text = "Resume";
                this.m_status         = CheckoutManagerState.paused;
            }
            else if (this.m_status == CheckoutManagerState.paused)
            {
                m_cmgr.DownloadFilesResumeAsync();
                cancelBtn.Enabled     = true;
                asyncCheckoutBtn.Text = "Pause";
                this.m_status         = CheckoutManagerState.running;
            }
        }
        public void Scan_NonExistentItem_ThrowException()
        {
            // Arrange
            CheckoutManager checkoutManager = new CheckoutManager();
            Item            nonExistentItem = new Item()
            {
                Sku = ""
            };

            // Assert
            Assert.ThrowsException <Exception>(() => checkoutManager.Scan(nonExistentItem));
        }
示例#6
0
 private void Awake()
 {
     if (singleton != null && singleton != this)
     {
         Destroy(gameObject);
         return;
     }
     else
     {
         singleton = this;
         DontDestroyOnLoad(gameObject);
     }
 }
 protected void btnRemoveProvTax(object sender, EventArgs e)
 {
     ckm        = (CheckoutManager)Session["CheckOutTotals"];
     noPST      = ckm.blPst;
     balancedue = ckm.dblTotal + ckm.dblShipping + ckm.dblGst + ckm.dblPst - (ckm.dblDiscounts + ckm.dblTradeIn);
     if (noPST)
     {
         //noPST is now false so add back in
         noPST     = false;
         ckm.blPst = noPST;
         if (ckm.blGst)
         {
             balancedue -= ckm.dblGst;
             lblGovernmentAmount.Text = "$ 0.00";
         }
         btnRemoveProv.Text       = "Remove PST";
         lblProvincialAmount.Text = "$ " + ckm.dblPst.ToString("#0.00");
     }
     else
     {
         //noPST is now True so remove
         noPST     = true;
         ckm.blPst = noPST;
         if (!ckm.blGst)
         {
             balancedue -= ckm.dblPst;
             lblGovernmentAmount.Text = "$ " + ckm.dblGst.ToString("#0.00");
         }
         else if (ckm.blGst)
         {
             balancedue -= ckm.dblGst + ckm.dblPst;
             lblGovernmentAmount.Text = "$ 0.00";
         }
         lblProvincialAmount.Text = "$ 0.00";
         btnRemoveProv.Text       = "Add PST";
     }
     lblBalanceAmount.Text     = "$ " + balancedue.ToString("#0.00");
     Session["CheckOutTotals"] = ckm;
     if (Session["MethodsofPayment"] == null)
     {
         lblRemainingBalanceDueDisplay.Text = "$ " + balancedue.ToString("#0.00");
     }
     else
     {
         lblRemainingBalanceDueDisplay.Text = "$ " + (balancedue - dblAmountPaid).ToString("#0.00");
     }
 }
        public void GetTotalPrice_SingleApple_TotalPriceMatchExpectedPrice()
        {
            // Arrange
            decimal         expectedPrice   = 0.50m;
            CheckoutManager checkoutManager = new CheckoutManager();
            Item            apple           = new Item()
            {
                Sku = "A99"
            };

            // Act
            checkoutManager.Scan(apple);

            // Assert
            decimal price = checkoutManager.Total();

            Assert.AreEqual(price, expectedPrice);
        }
        public string ExecuteCompleteCheckout(
            ParseUser loggedInUser,
            CheckoutViewModel checkoutViewModel, 
            string worldId, 
            Purchase[] userHistoricalPurchases, out string paymentUrl)
        {
            paymentUrl = string.Empty;
            var completeCheckoutLetterDto = new CompleteCheckoutLetterDto();
            var completeCheckoutStatementsArray = new List<CheckoutStatementBase>();
            var checkoutItemLetterDtoArray = new List<CheckoutItemLetterDto>();
            var accountStatementsBuilder = new AccountStatementBuilder(_repository, _currencyRetriver);
            var checkoutManager = new CheckoutManager(_repository, loggedInUser, checkoutViewModel);

            try
            {
                CreatePaymentRecords(checkoutViewModel, worldId, userHistoricalPurchases, checkoutManager,completeCheckoutLetterDto, checkoutItemLetterDtoArray, completeCheckoutStatementsArray);
                SetLetters(loggedInUser,checkoutViewModel,completeCheckoutStatementsArray,checkoutItemLetterDtoArray,completeCheckoutLetterDto,loggedInUser);

                if (checkoutViewModel.PaymentTransactionForCalc == 0)
                {
                    checkoutManager.SavePaymentRecords(completeCheckoutStatementsArray, accountStatementsBuilder, checkoutViewModel);
                    InitPuchaseView(loggedInUser, checkoutViewModel);
                }
                else
                {
                    _state.Set(STATE_KEY,completeCheckoutStatementsArray);

                    paymentUrl = GetPaymentUrl(checkoutManager,checkoutViewModel);
                }
            }
            catch(Exception ex)
            {
                BL.DomainServices.Log.LoggerFactory.GetLogger().LogError(ex);
                Mailer.SendCheckoutError(loggedInUser, checkoutManager.EventId, "Check out error");
                throw;
            }

            return checkoutManager.EventId;
        }
        private void syncCheckoutBtn_Click(object sender, EventArgs e)
        {
            int    numberOfThreads = (int)thCount.Value;
            string targetFolder    = textBoxDestination.Text;

            //Strat the timer
            sw.Start();

            textBoxResult.Clear();

            string files = GetFiles();

            Item configuration = m_inn.newItem();

            configuration.loadAML(files);

            // get checkout manager
            CheckoutManager checkoutManager2 = new CheckoutManager(configuration);

            // Lock all items in the configuration (!File, !Vault, !Located)
            // NOTE: In this particular example this call could be skipped as the configuration the way it's built does NOT have any items that have to be locked.
            Item lockResult = checkoutManager2.Lock();

            if (lockResult.isError())
            {
                MessageBox.Show(lockResult.getErrorString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            progressBar.Value = 0;

            // Download files synchronously
            System.Collections.Hashtable downloadResults = checkoutManager2.DownloadFiles(targetFolder, numberOfThreads);

            ProcessResult(downloadResults, configuration);
        }
        //Populating gridview with MOPs
        protected void populateGridviewMOP(double amountPaid, string methodOfPayment)
        {
            Checkout tempCK = new Checkout(methodOfPayment, amountPaid);

            if (Session["MethodsofPayment"] != null)
            {
                mopList = (List <Checkout>)Session["MethodsofPayment"];
            }
            //ck = ckm.methodsOfPayment(methodOfPayment, amountPaid, ck);
            mopList.Add(tempCK);
            gvCurrentMOPs.DataSource = mopList;
            foreach (var mop in mopList)
            {
                dblAmountPaid += mop.amountPaid;
            }
            gvCurrentMOPs.DataBind();
            foreach (GridViewRow row in gvCurrentMOPs.Rows)
            {
                foreach (TableCell cell in row.Cells)
                {
                    cell.Attributes.CssStyle["text-align"] = "center";
                }
            }
            Session["MethodsofPayment"] = mopList;
            ckm = (CheckoutManager)Session["CheckOutTotals"];
            if (!ckm.blGst)
            {
                dblRemaining += ckm.dblGst;
            }
            if (!ckm.blPst)
            {
                dblRemaining += ckm.dblPst;
            }
            dblRemaining += ckm.dblTotal + ckm.dblShipping - (ckm.dblDiscounts + ckm.dblTradeIn);
            lblRemainingBalanceDueDisplay.Text = "$ " + (dblRemaining - dblAmountPaid).ToString("#0.00");
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                List <Tax>         t    = new List <Tax>();
                List <Cart>        cart = new List <Cart>();
                CalculationManager cm   = new CalculationManager();


                if (Session["MethodsofPayment"] == null)
                {
                    double dblShippingAmount = Convert.ToDouble(Session["ShippingAmount".ToString()]);
                    bool   bolShipping       = Convert.ToBoolean(Session["shipping"]);
                    if (bolShipping)
                    {
                        int      custNum = (int)Convert.ToInt32(Session["key"].ToString());
                        Customer c       = ssm.GetCustomerbyCustomerNumber(custNum);
                        t = ssm.getTaxes(c.province);
                        lblShipping.Visible       = true;
                        lblShippingAmount.Visible = true;
                    }
                    else
                    {
                        //**Will need to be enabled not shipping
                        //t = ssm.getTaxes(Convert.ToInt(Session["location"].ToString());
                        lblShipping.Visible       = false;
                        lblShippingAmount.Visible = false;
                    }
                    ckm = new CheckoutManager(cm.returnTotalAmount(cart), cm.returnDiscount(cart), cm.returnTradeInAmount(cart), dblShippingAmount, true, true, 0, 0, 0, cm.returnSubtotalAmount(cart));
                    foreach (var T in t)
                    {
                        switch (T.taxName)
                        {
                        case "GST":
                            lblGovernment.Visible    = true;
                            ckm.dblGst               = cm.returnGSTAmount(T.taxRate, ckm.dblSubTotal);
                            lblGovernmentAmount.Text = "$ " + ckm.dblGst.ToString("#0.00");
                            btnRemoveGov.Visible     = true;
                            break;

                        case "PST":
                            lblProvincial.Visible = true;
                            pst = Math.Round((T.taxRate * subtotal), 2);
                            lblProvincialAmount.Text = "$ " + pst.ToString("#0.00");
                            btnRemoveProv.Visible    = true;
                            break;

                        case "HST":
                            lblProvincial.Visible = false;
                            lblGovernment.Text    = "HST";
                            gst = Math.Round((T.taxRate * subtotal), 2);
                            lblGovernmentAmount.Text = "$ " + gst.ToString("#0.00");
                            btnRemoveProv.Visible    = false;
                            btnRemoveGov.Text        = "HST";
                            break;

                        case "RST":
                            lblProvincial.Visible = true;
                            lblProvincial.Text    = "RST";
                            pst = Math.Round((T.taxRate * subtotal), 2);
                            lblProvincialAmount.Text = "$ " + pst.ToString("#0.00");
                            btnRemoveProv.Visible    = true;
                            btnRemoveProv.Text       = "RST";
                            break;

                        case "QST":
                            lblProvincial.Visible = true;
                            lblProvincial.Text    = "QST";
                            pst = Math.Round((T.taxRate * subtotal), 2);
                            lblProvincialAmount.Text = "$ " + pst.ToString("#0.00");
                            btnRemoveProv.Visible    = true;
                            btnRemoveProv.Text       = "QST";
                            break;
                        }
                    }
                }
                else
                {
                    ckm     = (CheckoutManager)Session["CheckOutTotals"];
                    mopList = (List <Checkout>)Session["MethodsofPayment"];
                    foreach (var mop in mopList)
                    {
                        dblAmountPaid += mop.amountPaid;
                    }
                    gvCurrentMOPs.DataSource = mopList;
                    gvCurrentMOPs.DataBind();
                    ckm.dblAmountPaid       = dblAmountPaid;
                    ckm.dblRemainingBalance = ckm.dblSubTotal - ckm.dblAmountPaid;
                }
                Session["CheckOutTotals"] = ckm;

                //***Assign each item to its Label.

                //    //Assigning session brought from the cart to variables
                //    int custNum = (int)(Convert.ToInt32(Session["key"].ToString()));
                //    bool shipping = Convert.ToBoolean(Session["shipping"]);
                //    cart = (List<Cart>)Session["ItemsInCart"];
                //    double dblShippingAmount = Convert.ToDouble(Session["ShippingAmount"].ToString());
                //    Customer c = ssm.GetCustomerbyCustomerNumber(custNum);
                //    //End of assigning

                //    if (shipping == false)
                //    {
                //        //**Need to change to location for taxes
                //        t = ssm.getTaxes(c.province);
                //        lblShipping.Visible = false;
                //        lblShippingAmount.Visible = false;
                //        //txtShippingAmount.Visible = false;
                //    }
                //    else if (shipping == true)
                //    {
                //        t = ssm.getTaxes(c.province);
                //        lblShipping.Visible = true;
                //        lblShippingAmount.Visible = true;
                //        //txtShippingAmount.Visible = true;
                //    }

                //    lblTotalInCartAmount.Text = "$ " + cm.returnTotalAmount(cart).ToString("#0.00");
                //    lblTotalInDiscountsAmount.Text = "$ " + cm.returnDiscount(cart).ToString("#0.00");
                //    lblTradeInsAmount.Text = "$ " + cm.returnTradeInAmount(cart).ToString("#0.00");
                //    subtotal = cm.returnSubtotalAmount(cart);
                //    lblSubTotalAmount.Text = "$ " + subtotal.ToString("#0.00");
                //    lblShippingAmount.Text = "$ " + dblShippingAmount.ToString("#0.00");

                //    foreach (var T in t)
                //    {
                //        switch (T.taxName)
                //        {
                //            case "GST":
                //                lblGovernment.Visible = true;
                //                gst = cm.returnGSTAmount(T.taxRate, cart);
                //                lblGovernmentAmount.Text = "$ " + gst.ToString("#0.00");
                //                btnRemoveGov.Visible = true;
                //                break;
                //            case "PST":
                //                lblProvincial.Visible = true;
                //                pst = Math.Round((T.taxRate * subtotal), 2);
                //                lblProvincialAmount.Text = "$ " + pst.ToString("#0.00");
                //                btnRemoveProv.Visible = true;
                //                break;
                //            case "HST":
                //                lblProvincial.Visible = false;
                //                lblGovernment.Text = "HST";
                //                gst = Math.Round((T.taxRate * subtotal), 2);
                //                lblGovernmentAmount.Text = "$ " + gst.ToString("#0.00");
                //                btnRemoveProv.Visible = false;
                //                btnRemoveGov.Text = "HST";
                //                break;
                //            case "RST":
                //                lblProvincial.Visible = true;
                //                lblProvincial.Text = "RST";
                //                pst = Math.Round((T.taxRate * subtotal), 2);
                //                lblProvincialAmount.Text = "$ " + pst.ToString("#0.00");
                //                btnRemoveProv.Visible = true;
                //                btnRemoveProv.Text = "RST";
                //                break;
                //            case "QST":
                //                lblProvincial.Visible = true;
                //                lblProvincial.Text = "QST";
                //                pst = Math.Round((T.taxRate * subtotal), 2);
                //                lblProvincialAmount.Text = "$ " + pst.ToString("#0.00");
                //                btnRemoveProv.Visible = true;
                //                btnRemoveProv.Text = "QST";
                //                break;
                //        }
                //    }
                //    dblAmountPaid = 0;
                //    //Checking if there are MOP's
                //    if (Session["MethodsofPayment"] != null)
                //    {
                //        ck = (List<Checkout>)Session["MethodsofPayment"];
                //        foreach (var mop in ck)
                //        {
                //            dblAmountPaid += mop.amountPaid;
                //        }
                //        gvCurrentMOPs.DataSource = ck;
                //        gvCurrentMOPs.DataBind();
                //    }
                //    //End of checking MOP's

                //    ckm = new CheckoutManager(cm.returnTotalAmount(cart), cm.returnDiscount(cart), cm.returnTradeInAmount(cart), dblShippingAmount, noGST, noPST, gst, pst,(cm.returnSubtotalAmount(cart)-dblAmountPaid));
                //    balancedue = ckm.dblGst + ckm.dblPst + ckm.dblShipping + ckm.dblTotal - (ckm.dblDiscounts + ckm.dblTradeIn);
                //    lblBalanceAmount.Text = "$ " + balancedue.ToString("#0.00");
                //    lblRemainingBalanceDueDisplay.Text = "$ " + balancedue.ToString("#0.00");
                //    Session["CheckOutTotals"] = ckm;
                //}
                //if (txtShippingAmount.Text == null || txtShippingAmount.Text == "")
                //{
                //    txtShippingAmount.Text = "0";
                //}
                //shippingCost = Convert.ToDouble(txtShippingAmount.Text);
                //ckm = (CheckoutManager)Session["CheckOutTotals"];
                //ckm.dblShipping = shippingCost;
                //balancedue = ckm.dblGst + ckm.dblPst + ckm.dblShipping + ckm.dblTotal - (ckm.dblDiscounts + ckm.dblTradeIn);
                //lblBalanceAmount.Text = "$ " + balancedue.ToString("#0.00");
                //Session["CheckOutTotals"] = ckm;
                //if (Session["MethodsofPayment"] == null)
                //{
                //    lblRemainingBalanceDueDisplay.Text = "$ " + balancedue.ToString("#0.00");
                //}
                //else
                //{
                //    ck = (List<Checkout>)Session["MethodsofPayment"];
                //    gvCurrentMOPs.DataSource = ck;
                //    gvCurrentMOPs.DataBind();
                //    foreach (var mop in ck)
                //    {
                //        dblAmountPaid += mop.amountPaid;
                //    }
                //    if (!ckm.blGst)
                //    {
                //        dblRemaining += ckm.dblGst;
                //    }
                //    if (!ckm.blPst)
                //    {
                //        dblRemaining += ckm.dblPst;
                //    }
                //    dblRemaining += ckm.dblTotal + ckm.dblShipping - (ckm.dblDiscounts + ckm.dblTradeIn);
                //    lblRemainingBalanceDueDisplay.Text = "$ " + (dblRemaining - dblAmountPaid).ToString("#0.00");
            }
        }
示例#13
0
        private void SetLetters(ParseUser loggedInUser, CheckoutViewModel checkoutViewModel, List<CheckoutStatementBase> completeCheckoutStatementsArray, List<CheckoutItemLetterDto> checkoutItemLetterDtos, CompleteCheckoutLetterDto completeCheckoutLetterDto, ParseUser inUser)
        {
            var checkoutManager = new CheckoutManager(_repository, loggedInUser, checkoutViewModel);

            //כתיבת רשומת מכתב לפריט למורה
            checkoutManager.GetItemLetterForTeacher(completeCheckoutStatementsArray,checkoutItemLetterDtos);

            //כתיבת רשומת מכתב לפריט לסוכן
            checkoutManager.GetItemLetterForAgent(completeCheckoutStatementsArray,checkoutItemLetterDtos);

            //כתיבת רשומת מכתב לפריט למנהל
            checkoutManager.GetItemLetterForAdmin(completeCheckoutStatementsArray,checkoutItemLetterDtos,completeCheckoutLetterDto);

            // כתיבת רשומת מכתב סיכום לרוכש
            checkoutManager.GetSummaryLetterForStudent(completeCheckoutStatementsArray,completeCheckoutLetterDto,checkoutViewModel);

            //כתיבת רשומת מכתב סיכום למנהל
            checkoutManager.GetSummaryLetterForAdmin(completeCheckoutStatementsArray,completeCheckoutLetterDto,checkoutViewModel);

            if (checkoutViewModel.PurchaseFor != loggedInUser.Username)
            {
                //מכתב לתלמיד
                checkoutManager.GetStudentLetter(completeCheckoutStatementsArray, completeCheckoutLetterDto, checkoutViewModel);
            }
        }
示例#14
0
        private string GetPaymentUrl(CheckoutManager checkoutManager, CheckoutViewModel checkoutViewModel)
        {
            var checkoutItems = new List<CheckoutItem>();
            foreach (var purchaseViewModel in checkoutViewModel.PurchasesForUser)
            {
                string name = Language.CurrentLanguageCode == Cultures.HE_IL ?
                    purchaseViewModel.ContentName_he_il :
                    purchaseViewModel.ContentName_en_us;

                double price = purchaseViewModel.HasCoupon ?
                    purchaseViewModel.PriceWithCoupon:
                    purchaseViewModel.RegularPrice;

                name = string.Format("{0}{1}", purchaseViewModel.IsLesson ?
                    MyMentorResources.checkoutLesson : MyMentorResources.checkoutBundle, name);

                checkoutItems.Add(new CheckoutItem
                {
                    Name = name,
                    Price = price
                });
            }

            if (checkoutViewModel.BalanceForCalc > 0)
            {
                checkoutItems.Add(new CheckoutItem
                {
                    Name = MyMentorResources.checkoutBalance,
                    Price = (checkoutViewModel.BalanceForCalc * -1)
                });
            }

            if (checkoutViewModel.BalanceForCalc < 0)
            {
                checkoutItems.Add(new CheckoutItem
                {
                    Name = MyMentorResources.checkoutBalanceCover,
                    Price = (checkoutViewModel.BalanceForCalc * -1)
                });
            }

            var response = _payPalExpressCheckoutManager.ValidatePayment(
                checkoutItems,
                checkoutViewModel.UserCurrency.PaypalCode,
                checkoutViewModel.PaymentTransactionForCalc);

            return response.ValidationUrl;
        }
示例#15
0
        private static void CreatePaymentRecords(
            CheckoutViewModel checkoutViewModel, 
            string worldId,
            Purchase[] userHistoricalPurchases, 
            CheckoutManager checkoutManager,
            CompleteCheckoutLetterDto completeCheckoutLetterDto, 
            List<CheckoutItemLetterDto> checkoutItemLetterDtoArray,
            List<CheckoutStatementBase> completeCheckoutStatementsArray)
        {
            checkoutManager.StartPaymentEvent(completeCheckoutLetterDto);
            checkoutManager.SetPayerCreditForPayment(completeCheckoutStatementsArray, completeCheckoutLetterDto, worldId);
            checkoutManager.SetPayerDebitForContent(completeCheckoutStatementsArray, completeCheckoutLetterDto);
            checkoutManager.SetSiteAndVatAccountRecords(completeCheckoutStatementsArray, completeCheckoutLetterDto);

            foreach (var purchaseViewModel in checkoutViewModel.PurchasesForUser)
            {
                var checkoutItemLetterDto = new CheckoutItemLetterDto();
                checkoutItemLetterDto.IsLesson = purchaseViewModel.IsLesson;

                checkoutManager.SetTeacherCommission(checkoutItemLetterDto, purchaseViewModel);
                checkoutManager.SetTeacherData(checkoutItemLetterDto, purchaseViewModel);
                checkoutManager.SetAgentCommission(checkoutItemLetterDto, purchaseViewModel);
                checkoutManager.SetTeacherSiteAgentCommissionsCalculations(checkoutItemLetterDto, purchaseViewModel);
                checkoutManager.SetMaam(checkoutItemLetterDto);
                checkoutManager.SetConvertsionCommissions(checkoutItemLetterDto);

                // כתיבת תנועות כספיות

                checkoutManager.TeacherSaleCommissionCredit(completeCheckoutStatementsArray, checkoutItemLetterDto,purchaseViewModel);
                checkoutManager.TeacherSaleCommissionDebit(completeCheckoutStatementsArray, checkoutItemLetterDto,purchaseViewModel);
                checkoutManager.TeacherConversionDebit(completeCheckoutStatementsArray, checkoutItemLetterDto, purchaseViewModel);
                checkoutManager.SiteConversionCredit(completeCheckoutStatementsArray, checkoutItemLetterDto, purchaseViewModel);
                checkoutManager.AgentToAgentConversionCredit(completeCheckoutStatementsArray, checkoutItemLetterDto,purchaseViewModel);
                checkoutManager.AgentToSiteConversionCredit(completeCheckoutStatementsArray, checkoutItemLetterDto,purchaseViewModel);
                checkoutManager.AgentConversionDebit(completeCheckoutStatementsArray, checkoutItemLetterDto, purchaseViewModel);
                checkoutManager.SiteAgentConversionCredit(completeCheckoutStatementsArray, checkoutItemLetterDto,purchaseViewModel);

                // כתיבת רשומות

                checkoutManager.UpdateCoupon(completeCheckoutStatementsArray, purchaseViewModel);
                checkoutManager.UpdatePurchase(completeCheckoutStatementsArray, completeCheckoutLetterDto, purchaseViewModel);

                // טיפול בחבילה
                checkoutManager.HandlePackage(completeCheckoutStatementsArray, purchaseViewModel, checkoutViewModel,
                    userHistoricalPurchases, worldId, completeCheckoutLetterDto.StudentKeyLetter,completeCheckoutLetterDto.StudentCurrencyLetter);

                checkoutItemLetterDtoArray.Add(checkoutItemLetterDto);
            }

            // add basketitemnames
            checkoutManager.GetBasketItemNames(completeCheckoutStatementsArray, checkoutItemLetterDtoArray, checkoutViewModel);
        }
示例#16
0
        public void ExecutePayment(string payerId, string paymentId, CheckoutViewModel checkoutViewModel, ParseUser loggedInUser)
        {
            var completeCheckoutStatementsArray = _state.Get<List<CheckoutStatementBase>>(STATE_KEY);
            var eventId = completeCheckoutStatementsArray.OfType<TransactionStatement>().First().Event;

            var executePayment = _payPalExpressCheckoutManager.ExecutePayment(payerId, paymentId);
            if (executePayment == null)
            {
                Mailer.SendCheckoutError(loggedInUser, eventId,"payment failed, database not upadated");
                return;
            }

            try
            {
                var accountStatementsBuilder = new AccountStatementBuilder(_repository, _currencyRetriver);
                var checkoutManager = new CheckoutManager(_repository, loggedInUser, checkoutViewModel);

                checkoutManager.EventId = eventId;
                checkoutManager.SavePaymentRecords(completeCheckoutStatementsArray, accountStatementsBuilder, checkoutViewModel, executePayment.ConvertToJson());
                InitPuchaseView(loggedInUser, checkoutViewModel);
            }
            catch (Exception ex)
            {
                Mailer.SendCheckoutError(loggedInUser, eventId, "Payment succeeded, Data Base update failed");
                BL.DomainServices.Log.LoggerFactory.GetLogger().LogError(ex);
                throw;
            }
        }
        private void asyncCheckoutBtn_Click(object sender, EventArgs e)
        {
            textBoxResult.Clear();

            if (this.m_status == CheckoutManagerState.idle)
            {
                string files = GetFiles();

                // Create configuration
                Item configuration = m_inn.newItem();
                configuration.loadAML(files);

                // Create Aras.IOME.CheckoutManager
                m_cmgr = new CheckoutManager(configuration);

                // Lock all items in the configuration (!File, !Vault, !Located)
                Item lockResult = m_cmgr.Lock();

                if (lockResult.isError())
                {
                    MessageBox.Show(lockResult.getErrorString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                int numberOfThreads = (int)thCount.Value;
                string targetFolder = textBoxDestination.Text;

                // Event handlers are attached to Aras.IOME.CheckoutManager events.
                m_cmgr.DownloadFileCompleted += new Aras.IOME.DownloadFileCompletedEventHandler(HandleDownloadFileCompleted);
                m_cmgr.DownloadFilesCompleted += new Aras.IOME.DownloadFilesCompletedEventHandler(HandleDownloadFilesCompleted);
                m_cmgr.DownloadFilesProgressChanged += new Aras.IOME.DownloadFilesProgressChangedEventHandler(HandleDownloadFileProgressChanged);

                this.m_failed_count = 0;
                progressBar.Value = 0;

                // Begin download files asynchronously
                m_cmgr.DownloadFilesAsync(targetFolder, numberOfThreads);

                // Toggle button state
                cancelBtn.Enabled = true;
                asyncCheckoutBtn.Text = "Pause";
                this.m_status = CheckoutManagerState.running;
            }
            else if (this.m_status == CheckoutManagerState.running)
            {
                m_cmgr.DownloadFilesPauseAsync();
                cancelBtn.Enabled = false;
                asyncCheckoutBtn.Text = "Resume";
                this.m_status = CheckoutManagerState.paused;
            }
            else if (this.m_status == CheckoutManagerState.paused)
            {
                m_cmgr.DownloadFilesResumeAsync();
                cancelBtn.Enabled = true;
                asyncCheckoutBtn.Text = "Pause";
                this.m_status = CheckoutManagerState.running;
            }
        }
        private void syncCheckoutBtn_Click(object sender, EventArgs e)
        {
            int numberOfThreads = (int)thCount.Value;
            string targetFolder = textBoxDestination.Text;

            //Strat the timer
            sw.Start();

            textBoxResult.Clear();

            string files = GetFiles();

            Item configuration = m_inn.newItem();
            configuration.loadAML(files);

            // get checkout manager
            CheckoutManager checkoutManager2 = new CheckoutManager(configuration);

            // Lock all items in the configuration (!File, !Vault, !Located)
            // NOTE: In this particular example this call could be skipped as the configuration the way it's built does NOT have any items that have to be locked.
            Item lockResult = checkoutManager2.Lock();
            if (lockResult.isError())
            {
                MessageBox.Show(lockResult.getErrorString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            progressBar.Value = 0;

            // Download files synchronously
            System.Collections.Hashtable downloadResults = checkoutManager2.DownloadFiles(targetFolder, numberOfThreads);

            ProcessResult(downloadResults, configuration);
        }