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); }
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()); }
/// <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); }