public Order CreateOrder(Order order) { decimal orderTotal = 0; order.OrderDetails = new List<OrderDetail>(); var cartItems = GetCartItems(); // Iterate over the items in the cart, // adding the order details for each foreach (var item in cartItems) { var orderDetail = new OrderDetail { ItemID = item.ItemId, OrderID = order.OrderID, UnitPrice = item.Item.Price, Quantity = item.Count }; // Set the order total of the shopping cart orderTotal += (item.Count * item.Item.Price); order.OrderDetails.Add(orderDetail); storeDB.OrderDetails.Add(orderDetail); } // Set the order's total to the orderTotal count order.Total = orderTotal; // Save the order storeDB.SaveChanges(); // Empty the shopping cart EmptyCart(); // Return the OrderId as the confirmation number return order; }
public string ToString(Order order) { StringBuilder bob = new StringBuilder(); bob.Append("<p>Order Information for Order: "+ order.OrderId +"<br>Placed at: " + order.OrderDate +"</p>").AppendLine(); bob.Append("<p>Name: " + order.FirstName + " " + order.LastName + "<br>"); bob.Append("Address: " + order.Address + " " + order.City + " " + order.State + " " + order.PostalCode + "<br>"); bob.Append("Contact: " + order.Email + " " + order.Phone + "</p>"); bob.Append("<p>Charge: " + order.CreditCard + " " + order.Experation.ToString("dd-MM-yyyy") + "</p>"); bob.Append("<p>Credit Card Type: " + order.CcType + "</p>"); bob.Append("<br>").AppendLine(); bob.Append("<Table>").AppendLine(); // Display header string header = "<tr> <th>Item Name</th>" + "<th>Quantity</th>" + "<th>Price</th> <th></th> </tr>"; bob.Append(header).AppendLine(); String output = String.Empty; try { foreach (var item in order.OrderDetails) { bob.Append("<tr>"); output = "<td>" + item.Item.Name + "</td>" + "<td>" + item.Quantity + "</td>" + "<td>" + item.Quantity * item.UnitPrice + "</td>"; bob.Append(output).AppendLine(); Console.WriteLine(output); bob.Append("</tr>"); } } catch (Exception ex) { output = "No items ordered."; } bob.Append("</Table>"); bob.Append("<b>"); // Display footer string footer = String.Format("{0,-12}{1,12}\n", "Total", order.Total); bob.Append(footer).AppendLine(); bob.Append("</b>"); return bob.ToString(); }
public async Task<ActionResult> Create(Order order) { if (ModelState.IsValid) { db.Orders.Add(order); await db.SaveChangesAsync(); return RedirectToAction("Index"); } return View(order); }
public async Task<ActionResult> Edit(Order order) { if (ModelState.IsValid) { db.Entry(order).State = EntityState.Modified; await db.SaveChangesAsync(); return RedirectToAction("Index"); } return View(order); }
public async Task<ActionResult> AddressAndPayment(FormCollection values) { ViewBag.CreditCardTypes = CreditCardTypes; string result = values[9]; var order = new Order(); TryUpdateModel(order); order.CreditCard = result; try { order.Username = User.Identity.Name; order.Email = User.Identity.Name; order.OrderDate = DateTime.Now; var currentUserId = User.Identity.GetUserId(); if (order.SaveInfo && !order.Username.Equals("*****@*****.**")) { var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())); var store = new UserStore<ApplicationUser>(new ApplicationDbContext()); var ctx = store.Context; var currentUser = manager.FindById(User.Identity.GetUserId()); currentUser.Address = order.Address; currentUser.City = order.City; currentUser.Country = order.Country; currentUser.State = order.State; currentUser.Phone = order.Phone; currentUser.PostalCode = order.PostalCode; currentUser.FirstName = order.FirstName; //Save this back //http://stackoverflow.com/questions/20444022/updating-user-data-asp-net-identity //var result = await UserManager.UpdateAsync(currentUser); await ctx.SaveChangesAsync(); await storeDB.SaveChangesAsync(); } //Save Order storeDB.Orders.Add(order); await storeDB.SaveChangesAsync(); //Process the order var cart = ShoppingCart.GetCart(this.HttpContext); order = cart.CreateOrder(order); CheckoutController.SendOrderMessage(order.FirstName, "New Order: " + order.OrderId,order.ToString(order), appConfig.OrderEmail); return RedirectToAction("Complete", new { id = order.OrderId }); } catch { //Invalid - redisplay with errors return View(order); } }