Ejemplo n.º 1
0
        private void button_Click_1(object sender, RoutedEventArgs e)
        {
            FileWriter psngrToFile = new FileWriter();

            psngrToFile.Jwriter(nameTextBox.Text, datepicksale.Text, (comboBox.Text + comboBox1.Text), comboBoxdest.Text, comboBox1_Copy.Text);
            EmailReceipt email = new EmailReceipt();

            email.Email(nameTextBox.Text, datepicksale.Text, (comboBox.Text + comboBox1.Text), comboBoxdest.Text, comboBox1_Copy.Text, phonebox.Text);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Checkout()
        {
            List <Order>       newOrderList        = new List <Order>();
            List <OrderDetail> newOrderDetailsList = new List <OrderDetail>();
            int i = 0;

            //generate orderId
            //Add order and orderdetal data into database after purchase.
            var newOrderId = ShortGuid.Shorten(Guid.NewGuid());

            List <Cart> userCart = new List <Cart>();
            string      userId   = User.FindFirst("userId").Value;

            userCart = db.Users.FirstOrDefault(u => u.Id == userId).Carts.ToList();

            //While we are adding order and orderdetail data into the database, we will populate the view data as well for the reciept

            List <CheckOutViewModel> recieptList = new List <CheckOutViewModel>();

            Order newOrder = new Order()
            {
                UserId    = userId,
                Id        = newOrderId,
                Timestamp = DateTime.Now
            };

            db.Orders.Add(newOrder);
            db.SaveChanges();

            //Debug.WriteLine(newOrder.Id);
            //Debug.WriteLine(newOrder);

            foreach (var cartItem in userCart)
            {
                while (i < cartItem.Qty)
                {
                    //Populate OrderDetail & add to database
                    OrderDetail newOrderDetail = new OrderDetail()
                    {
                        ActivationCode = Guid.NewGuid().ToString(),
                        OrderId        = newOrderId,
                        ProductId      = cartItem.ProductId
                    };

                    db.OrderDetails.Add(newOrderDetail);
                    db.SaveChanges();

                    //Debug.WriteLine(newOrderDetail);
                    //Debug.WriteLine(newOrderDetail.ActivationCode);

                    //populate the checkoutviewmodel
                    CheckOutViewModel reciept = new CheckOutViewModel()
                    {
                        ImgURL         = cartItem.Product.ImgURL,
                        ProductName    = cartItem.Product.ProductName,
                        ProductDesc    = cartItem.Product.ProductDesc,
                        ActivationCode = newOrderDetail.ActivationCode,
                        Qty            = cartItem.Qty,
                        UnitPrice      = cartItem.Product.UnitPrice,
                        Discount       = cartItem.Product.Discount
                    };

                    recieptList.Add(reciept);
                    i++;
                }
                i = 0;
            }

            var receiptView = recieptList.GroupBy(o => o.ProductName);

            //mapping the orderviewmodel into to the view using viewdata
            ViewData["RecieptView"] = receiptView;

            // create Receipt model and pass it to EmailReceipt.SendReceipt
            var receipt = new Receipt
            {
                OrderId = newOrderId
            };

            foreach (var group in receiptView)
            {
                List <string> activationCodes = group.Select(g => g.ActivationCode).ToList();

                receipt.ReceiptItems.Add(new ReceiptItem
                {
                    ProductName     = group.First().ProductName,
                    ActivationCodes = activationCodes,
                    UnitPrice       = group.First().UnitPrice,
                    Qty             = group.First().Qty,
                    Discount        = group.First().Discount
                });
            }

            var emailStatus = await EmailReceipt.SendReceipt(db.Users.FirstOrDefault(u => u.Id == userId).Email, receipt);

            if (!emailStatus.IsSuccessful)
            {
                //Debug.WriteLine("Email receipt unsuccessful");
            }

            //Clearing the Cart table in database after purchase
            foreach (var cartDelete in userCart)
            {
                db.Carts.Remove(cartDelete);
            }
            db.SaveChanges();

            //Remove cart session data
            HttpContext.Session.Remove("cart");
            HttpContext.Session.Remove("cartCount");

            return(View());
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Sets when the schedule should email receipts.
 /// </summary>
 /// <param name="value">When the schedule should email receipts</param>
 /// <returns>Schedule</returns>
 public Schedule WithEmailReceipt(EmailReceipt value)
 {
     EmailReceipt = value;
     return(this);
 }