//get the orderID public int GetOrderID() { if (Session["orderID"] == null) { //they dont have a orderID, // create a new order //step 1: make a new order object Models.Order order = new Models.Order(); //step 2: fill in required information order.DateCreated = DateTime.Now; order.Status = "Cart"; order.Tax = 0; order.Total = 0; order.ShippingTotal = 0; //step 3: add order to the database db.Orders.Add(order); //step 4: save the changes db.SaveChanges(); //step 5: set the session variable for // for the orderID Session["orderID"] = order.OrderID; } //convert the session object to a string, then to // a integer return int.Parse(Session["orderID"].ToString()); }
public override ERPStore.Models.ISaleDocument CreateOrderFromCart(ERPStore.Models.User user, ERPStore.Models.OrderCart cart) { var order = new Models.Order(); order.Id = 1; order.Code = Guid.NewGuid().ToString(); order.User = user; order.PaymentModeName = cart.PaymentModeName; m_OrderList.Add(order); return order; }
public int GetOrderID() { if (Session["orderID"] == null) { //they dont have a cart //create a new order // make a new order object Models.Order order = new Models.Order(); // fillin teh required information order.DateCreated = DateTime.Now; order.Status = "Cart"; order.Tax = 0; order.TotalPrice = 0; order.ShippingTotal = 0; // add order to database db.Orders.Add(order); //save changes db.SaveChanges(); Session["orderID"] = order.OrderID; } return int.Parse(Session["orderID"].ToString()); }
public int GetOrderID() { if (Session["OrderID"] == null) { //Create new order var newOrder = new Models.Order(); newOrder.dtCreated = DateTime.Now; newOrder.Status = "Cart"; newOrder.SalesTax = 0; newOrder.Subtotal = 0; newOrder.ShippingCost = 0; newOrder.TotalPrice = 0; //Add order to DB db.Orders.Add(newOrder); db.SaveChanges(); //Set the session orderID to the new orderID Session["OrderID"] = newOrder.OrderID; return newOrder.OrderID; } return int.Parse(Session["OrderID"].ToString()); }
public ActionResult GetOrderInfoById(string Id) { Dictionary <string, object> returnObject = new Dictionary <string, object>(); try { Models.Order orderInfo = new Models.Order(); orderInfo = _orderUtility.GetOrderInfoById(Id); if (orderInfo != null && !string.IsNullOrEmpty(orderInfo.Id)) { returnObject.Add("orderInfo", orderInfo); returnObject.Add("status", "success"); } else { returnObject.Add("status", "fail"); } } catch (Exception) { } return(Json(new { message = returnObject }, JsonRequestBehavior.AllowGet)); }
public async Task <IActionResult> Checkout(Models.Order order, Models.ImageModel imageModel) { string url = $"https://maps.googleapis.com/maps/api/geocode/json?address={order.Address.StreetAddress},+{order.Address.City},+{order.Address.State},{order.Address.ZipCode}&key=AIzaSyDXS87aNNUzLOl40Q1kuMBWqup20n-508M"; HttpClient client = new HttpClient(); HttpResponseMessage response = await client.GetAsync(url); string jsonResult = await response.Content.ReadAsStringAsync(); if (response.IsSuccessStatusCode) { JObject geoCode = JObject.Parse(jsonResult); order.Address.Latitude = (double)geoCode["results"][0]["geometry"]["location"]["lat"]; order.Address.Longitude = (double)geoCode["results"][0]["geometry"]["location"]["lng"]; } var userId = um.GetUserId(HttpContext.User); order.UserId = userId; var items = await sc.GetShoppingCartItemsAsync(); sc.ShoppingCartItems = items; if (sc.ShoppingCartItems.Count == 0) { ModelState.AddModelError("", "Your cart is empty."); } if (ModelState.IsValid) { await SaveImage(imageModel); await or.CreateOrderAsync(order); await sc.ClearCartAsync(); return(RedirectToAction("MakePayment")); } return(View(order)); }
public ActionResult Index(Models.OrderModel.Ship postback) { if (this.ModelState.IsValid) { //取得目前購物車 var currentcart = Models.Cart.Operation.GetCurrentCart(); //取得目前登入使用者Id var userId = HttpContext.User.Identity.GetUserId(); using (Models.CartsEntities db = new Models.CartsEntities()) { //建立Order物件 var order = new Models.Order() { UserId = userId, RecieverName = postback.RecieverName, RecieverPhone = postback.RecieverPhone, RecieverAddress = postback.RecieverAddress }; //加其入Orders資料表後,儲存變更 db.Orders.Add(order); db.SaveChanges(); //取得購物車中OrderDetail物件 var orderDetails = currentcart.ToOrderDetailList(order.Id); //將其加入OrderDetails資料表後,儲存變更 db.OrderDetails.AddRange(orderDetails); db.SaveChanges(); } //清除購物車 currentcart.ClearCart(); //訂購成功, 返回訂單列表 return(RedirectToAction("MyOrder")); } return(View()); }
public IActionResult ConfirmOrder(CheckoutViewModel checkout) { //create an order object with the properties set var order = new Models.Order { Name = checkout.FirstName + " " + checkout.LastName, HospitalName = checkout.HospitalName, HospitalAdress = checkout.AddressLine1 + " " + checkout.AddressLine2, PostCode = checkout.PostCode, ShoppingCartId = checkout.ShoppingCartId, SubTotal = checkout.ShoppingCartTotal }; try { //sending of email but with hardcoded email addresses SmtpClient smtp = new SmtpClient("smtp.gmail.com"); smtp.EnableSsl = true; smtp.Port = 587; smtp.Credentials = new NetworkCredential("*****@*****.**", "Password123"); smtp.Send("*****@*****.**", "*****@*****.**", "Order Confirmation", "Thank you for your order! Its on its way!" + order.OrderPlaced); var payment = CreatePayment(order); payment.Wait(); //create the order _orderRepository.CreateOrder(order); //then return the view. return(View(order)); } catch { return(View("~/Views/Order/PaymentFailed.cshtml")); } }
public ActionResult Index(Models.Ship postback) { if (this.ModelState.IsValid) { //取得目前購物車 var currentcart = Models.Operation.GetCurrentCart(); //取得目前登入使用者Id //var userId = HttpContext.User.Identity.GetUserId(); var userId = String.Format("{0}", Session["LoginName"]); using (Models.CartsEntities db = new Models.CartsEntities()) { //建立Order物件 var order = new Models.Order() { UserId = userId, RecieverName = postback.RecieverName, RecieverPhone = postback.RecieverPhone, RecieverAddress = postback.RecieverAddress }; //加其入Orders資料表後,儲存變更 db.Orders.Add(order); db.SaveChanges(); //取得購物車中OrderDetai物件 var orderDetails = currentcart.ToOrderDetailList(order.Id); //將其加入OrderDetails資料表後,儲存變更 db.OrderDetails.AddRange(orderDetails); db.SaveChanges(); } return(Content("訂購成功")); } return(View()); }
public Models.Order DetailOrder(int id) { Models.Order data = new Models.Order(); var order = db.Order.Find(id); data.Name = order.Name; data.OrderID = order.OrderID; data.OrderDate = order.CreatedDate; data.TypeID = order.TypeID; if (db.Type.Find(order.TypeID).TypeName == "Order") { var table = (from a in db.Track where a.OrderID == id select a).FirstOrDefault(); data.TableID = table.TableID; data.TableName = table.Table.TableName; } var orderitem = (from a in db.OrderItem where a.IsDeleted != true && a.OrderID == data.OrderID && a.Status != "Cancel" select new OrderItemViewModel { OrderItemID = a.OrderItemID, MenuID = a.MenuID, MenuName = a.Menu.MenuName, Status = a.Status, Price = a.Menu.MenuPrice, Qty = a.Qty, Notes = a.Notes }).ToList(); data.OrderItem = orderitem; return(data); }
public async Task <Models.Order> Post(OrderDto orderDto) { _logger.LogInformation("[Begin] Create Order."); var order = new Models.Order() { // some mapping Id = orderDto.Id, ProductId = orderDto.ProductId, Count = orderDto.Count }; // some other logic for order var orderStockDto = new OrderStockDto() { ProductId = orderDto.ProductId, Count = orderDto.Count }; await _daprClient.PublishEventAsync(DaprPubSubName, "neworder", orderStockDto); _logger.LogInformation($"[End] Create Order Finished. Id : {orderStockDto.ProductId}, Count : {orderStockDto.Count}"); return(order); }
private void PublishOrderStatusChange(Models.Order order) { switch ((DTO.Status)order.IdStatus) { case DTO.Status.Accepted: var orderAcceptedMessage = new FoodOnKontainers.Events.DTO.Orders.OrderAcceptedEvent() { deliveryAddress = order.DeliveryAddress, deliveryName = order.UserName, deliveryRequestedDate = order.DeliveryRequestedDate, idOrder = order.Id, idRestaurant = order.IdRestaurant, restaurantAddress = order.RestaurantAddress, restaurantName = order.RestaurantName }; eventManager.OrderAccepted(orderAcceptedMessage); break; case DTO.Status.Rejected: var orderRejectedMessage = new FoodOnKontainers.Events.DTO.Orders.OrderRejectedEvent() { idOrder = order.Id, idUser = order.IdUser, price = order.Price }; eventManager.OrderRejected(orderRejectedMessage); break; case DTO.Status.Inserted: case DTO.Status.Delivering: case DTO.Status.Completed: case DTO.Status.Canceled: default: break; } }
public ActionResult AddOrder(Models.Product product) { var newCustomer = User.Identity.GetUserId(); Participant participant = db.Participants.Where(p => p.ApplicationId == newCustomer).Single(); Models.Order order = db.Orders.Where(o => o.ParticipantId == participant.ParticipantId && o.PendingOrder == true).FirstOrDefault(); if (order == null) { var newOrder = new Models.Order(); newOrder.ParticipantId = participant.ParticipantId; newOrder.PendingOrder = true; db.Orders.Add(newOrder); db.SaveChanges(); ProductOrder productOrder = new ProductOrder(); productOrder.OrderId = newOrder.OrderId; productOrder.ProductId = product.ProductId; productOrder.Quantity = product.Quantity; productOrder.Size = product.Size; productOrder.Total = product.Quantity * product.Price; db.ProductOrders.Add(productOrder); db.SaveChanges(); } else { ProductOrder productOrder = new ProductOrder(); productOrder.OrderId = order.OrderId; productOrder.ProductId = product.ProductId; productOrder.Quantity = product.Quantity; productOrder.Size = product.Size; productOrder.Total = product.Quantity * product.Price; db.ProductOrders.Add(productOrder); db.SaveChanges(); } return(RedirectToAction("ViewOrder")); }
public ActionResult Index(Models.OrderModel.Ship model) { if (this.ModelState.IsValid) { // 取得目前購物車 var CurrentCart = Models.Carts.Operation.GetCurrentCart(); // 取得目前登入使用者 Id var UserId = HttpContext.User.Identity.GetUserId(); using (Models.CartsEntities db = new Models.CartsEntities()) { // 建立 Order 物件 var order = new Models.Order() { UserId = UserId, ReceiverName = model.ReceiverName, ReceiverPhone = model.ReceiverPhone, ReceiverAddress = model.ReceiverAddress }; // 加入 Order 資料表後,儲存變更 db.Orders.Add(order); db.SaveChanges(); // 取得購物車中的 OrderDetail 物件 var orderDetails = CurrentCart.ToOrderDetailList(order.Id); // 將 OrderDetail 物件,加入 OrderDetail 資料表後,儲存變更。 db.OrderDetails.AddRange(orderDetails); db.SaveChanges(); } return(Content("訂購成功")); } return(View()); }
public void openOrder(int orderId, Contract contract, IBApi.Order order, OrderState orderState) { _____________________________________________________________________________Logger.WriteMethod(nameof(openOrder), nameof(orderId), orderId, nameof(contract), contract, nameof(order), order, nameof(orderState), orderState); if (PlacedOrders.ContainsKey(orderId)) { Models.Order modelOrder = PlacedOrders[orderId]; OrderStatus orderStatus = Utils.GetEnumArray <OrderStatus>().Single(x => x.Text() == orderState.Status); if (orderStatus.IsLastStatus() && orderState.Commission != decimal.MaxValue) { modelOrder.Commission = orderState.Commission; modelOrder.CommissionLock.Set(); } modelOrder.Status = orderStatus; if (modelOrder.Status.IsLastStatus()) { modelOrder.FinishLock.Set(); } } Locks[nameof(openOrder) + orderId].Set(); }
public void creatOrderDetails(Models.Order order, IEnumerable <Models.Cart> cartItems) { //order have create and is going to update information //decimal orderTotal = 0; // Iterate over the items in the cart, adding the order details for each foreach (var item in cartItems) { var orderDetail = new OrderDetail() { AlbumId = item.AlbumId, OrderId = order.OrderId, UnitPrice = item.Album.Price, Quantity = item.Count }; // Set the order total of the shopping cart // orderTotal += (item.Count * item.Album.Price); storeDB.OrderDetails.Add(orderDetail); } // Set the order's total to the orderTotal count // order.Total = orderTotal; // Save the order storeDB.SaveChanges(); }
public void PricingCalculator_WhenNewCustomerOrder_ReturnsAppropriatePrice() { var pricingCalc = new PriceCalculator(new List <IOrderRule> { new DistanceRule(), new FloorRule(), new WeekendRule(), new NewCustomerRule(_orderRepo.Object), new GoldenCustomerRule(_orderRepo.Object, _customerRepo.Object), new CouponRule(_customerRepo.Object) }); var order = new Models.Order { CustomerId = new Guid(), DeliveryDate = DateTime.Today, Distance = 5, FloorNumber = 5 }; pricingCalc.Calculate(order); Assert.AreEqual(849.15, order.Price); }
// GET: Checkout/Payment/checkoutId public ActionResult Payment(string id, string checkoutId) { if (id == null) { return(RedirectToAction("Home/Login")); } Models.Order order = db.Orders.Where(i => i.ID == id).First(); if (order == null) { return(HttpNotFound()); } if (!(db.CheckPayment(order.orderId, checkoutId))) { return(HttpNotFound()); } var viewModel = new Models.Order(); viewModel = order; return(View(viewModel)); }
public async Task <IActionResult> CreateOrder(Models.Order order) { using (var trans = _context.Database.BeginTransaction(_capBus, autoCommit: true)) { // 業務代碼 order.CreateTime = DateTime.Now; _context.Orders.Add(order); var r = await _context.SaveChangesAsync() > 0; if (r) { // 發佈下單事件 await _capBus.PublishAsync("order.services.createorder", new CreateOrderMessageDto() { Count = order.Count, ProductID = order.ProductID }); return(Ok()); } return(BadRequest()); } }
// GET: Orders/Create public async Task<ActionResult> Review() { Basket basket = Basket.GetBasket(); Order order = new Models.Order(); order.UserID = User.Identity.Name; ApplicationUser user = await UserManager.FindByNameAsync(order.UserID); order.DeliveryName = user.FirstName + " " + user.LastName; order.DeliveryAddress = user.Address; order.OrderLines = new List<OrderLine>(); foreach (var basketLine in basket.GetBasketLines()) { OrderLine line = new OrderLine { Product = basketLine.Product, ProductID = basketLine.ProductID, ProductName = basketLine.Product.Name, Quantity = basketLine.Quantity, UnitPrice = basketLine.Product.Price }; order.OrderLines.Add(line); } order.TotalPrice = basket.GetTotalCost(); return View(order); }
//grap the order id public int GetOrderID() { if(Session["orderID"] == null) { //don't have the OrderID //create a new order //step 1: make a new order object Models.Order order = new Models.Order(); //step 2: fill in required information order.DateCreated = DateTime.Now; order.Status = "Cart"; order.Tax = 0; order.Total = 0; order.ShippingTotal = 0; //step 3: add order to the database db.Orders.Add(order); db.SaveChanges(); //step 4: set the session variable for the orderid Session["orderID"] = order.OrderID; } //convert the order session (object) to int return int.Parse(Session["orderID"].ToString()); }
public ActionResult Edit(string id) { if (Session["IsAdmin"] != null && Session["IsAdmin"].Equals(false)) { Classes.MongoDB db = new Classes.MongoDB(); ViewBag.StatusTypes = new StatusTypes(); var order = db.GetOrder(id); var toys = db.GetAllToys(); Models.Order model = new Models.Order(); model.Id = order.Id; model.Kid = order.Kid; model.Status = order.Status; model.Date = order.Date; model.Toys = order.Toys; model.ToyList = toys.ToList(); model.EditToys = true; model.MissingToysList = MissingToy(order, toys.ToList()); return(View(model)); } else { return(RedirectToAction("../Users/Login")); } }
// Create a payment using an APIContext private Payment CreatePayment(APIContext apiContext, string redirectUrl, Models.Order order) // OM: add order { // similar to credit card create itemlist and add item objects to it var itemList = new ItemList() { items = new List <Item>() }; // OM: find price of each item exclusively, and of each item * quantity in order to find the total price var carts = db.Carts.Where(x => x.CartID == User.Identity.Name).ToList(); List <decimal> price = new List <decimal>(); List <decimal> totalPrices = new List <decimal>(); int count = 0; foreach (var item in carts) { price.Add(item.Product.Price); itemList.items.Add(new Item() { name = item.Product.Manufacturer.Name + " " + item.Product.Name, price = price[count].ToString(), quantity = item.Quantity.ToString(), currency = "EUR", sku = "Product Sku: " + item.ProductID.ToString() }); totalPrices.Add(price[count] * item.Quantity); count++; } var payer = new Payer() { payment_method = "paypal" }; // Configure Redirect Urls here with RedirectUrls object var redirUrls = new RedirectUrls() { cancel_url = redirectUrl, return_url = redirectUrl }; // OM: get total price of items in cart var total = totalPrices.Sum(); // similar as we did for credit card, do here and create details object var details = new Details() { //tax = "1", //shipping = "1", subtotal = total.ToString() }; // similar as we did for credit card, do here and create amount object var amount = new Amount() { currency = "EUR", total = total.ToString(), // Total must be equal to sum of shipping, tax and subtotal. details = details }; // OM: invoice number must be unique. Unique to the paypal sandbox account that is // so let's give it a huge random string and hope for the best var invoice = GetInvoice(); var transactionList = new List <Transaction>(); transactionList.Add(new Transaction() { description = "sales", invoice_number = order.ID.ToString() + invoice, amount = amount, item_list = itemList }); this.payment = new Payment() { intent = "sale", payer = payer, transactions = transactionList, redirect_urls = redirUrls }; // Create a payment using an APIContext return(this.payment.Create(apiContext)); }
public async Task <bool> CancelOrderAsync(int orderNumber) { Models.Order order = await findOrderByNumberAdapter.FindByNumberAsync(orderNumber); return(await cancelOrderAdapter.CancelOrderAsync(order)); }
public void InsertOrder(Models.Order order) { }
public void UpdateOrder(Models.Order order) { }
public Builder Order(Models.Order value) { order = value; return(this); }
// basket checkout public async Task <IActionResult> Checkout(string stripeToken, bool RememberMe, string customerName, decimal Total, string selectedDelivery) { var user = await _userManager.GetUserAsync(User); var role = await _userManager.GetRolesAsync(user); var tickets = await _context.BasketTickets.Include(x => x.Performance).ThenInclude(y => y.Play) .Include(x => x.BookedSeat).ThenInclude(y => y.Seat).Where(x => x.BasketId == user.Id).ToListAsync(); // check if any seats if (tickets.Count > 0 && Total > 0) { long amount = long.Parse(Total.ToString("#.00").Replace(".", "")); if (amount < 100) { amount *= 100; } // verify payment succeeds if (Charge(user.Email, stripeToken, amount, RememberMe)) { // charge succeeded, create an order Models.Order newOrder = new Models.Order() { OrderTime = DateTime.Now, UserId = user.Id, DeliveryMethod = selectedDelivery, IsPrinted = false }; // check the type of client if (role[0] == "Customer") { newOrder.ClientName = user.FirstName + " " + user.LastName; } else if (role[0] == "AgencyOrClub") { newOrder.ClientName = user.AgencyOrClubName; } else { newOrder.DeliveryMethod = "Pick from collection booth"; newOrder.ClientName = customerName; } // see if there was a discount DateTime time = DateTime.Now; bool discount = false; if (((int)time.DayOfWeek < 5) && ((int)time.DayOfWeek > 0)) { discount = true; } List <TicketsInBasket> ticketsBought = new List <TicketsInBasket>(); // create a sold ticket for each seat reserved foreach (BasketTicket basketTicket in tickets) { TicketsInBasket ticket = new TicketsInBasket { Price = basketTicket.Price, RowNumber = basketTicket.BookedSeat.Seat.RowNumber, SeatLetter = basketTicket.BookedSeat.Seat.ColumnLetter, PerformanceName = basketTicket.Performance.Play.Name, Id = basketTicket.Id, PerformanceTime = basketTicket.Performance.Date }; ticketsBought.Add(ticket); SoldTicket soldTicket = new SoldTicket { PlayName = basketTicket.Performance.Play.Name, UserId = user.Id, CustomerName = newOrder.ClientName, PerformanceTimeAndDate = basketTicket.Performance.Date, ColumnLetter = ticket.SeatLetter, Band = basketTicket.BookedSeat.Seat.Band, RowNumber = ticket.RowNumber }; if (discount) { soldTicket.PaidPrice = basketTicket.Price * 8 / 10; } else { soldTicket.PaidPrice = basketTicket.Price; } newOrder.SoldTickets.Add(soldTicket); } decimal finalPrice = 0; // add order to database await _context.Orders.AddAsync(newOrder); foreach (BasketTicket basketTicket in tickets) { var bookedSeat = await _context.BookedSeats .FirstOrDefaultAsync(x => x.Id == basketTicket.BookedSeatId); if (discount) { finalPrice += basketTicket.Price; } bookedSeat.Booked = 2; _context.Update(bookedSeat); } var basket = await _context.Basket.Include(x => x.Tickets).FirstOrDefaultAsync(x => x.UserId == user.Id); basket.Tickets.Clear(); await _context.SaveChangesAsync(); if (role[0] == "AgencyOrClub" && ticketsBought.Count > 19) { if (user.ApprovedMultipleDiscounts == true) { finalPrice = finalPrice * 9 / 10; } else { finalPrice = finalPrice * (decimal)9.5 / 10; } } // cereate tickets and receipt view TicketAndReceipt ticketAndReceipt = new TicketAndReceipt() { TotalCost = Total, OrderId = newOrder.Id, PersonName = newOrder.ClientName, Tickets = ticketsBought, DiscountApplied = discount, Saved = 0 }; if (discount) { ticketAndReceipt.Saved = Total - finalPrice; } return(View(ticketAndReceipt)); } else { return(RedirectToAction(nameof(Basket))); } } TempData["UserNotifier"] = new UserNotifier() { CssFormat = "alert-danger", Content = "Payment was declined", MessageType = "Error!" }; return(View()); }
// use when customer saved card details public async Task <IActionResult> UseSavedCard(decimal Total, string selectedDelivery) { var user = await _userManager.GetUserAsync(User); var role = await _userManager.GetRolesAsync(user); var tickets = await _context.BasketTickets.Include(x => x.Performance).ThenInclude(y => y.Play) .Include(x => x.BookedSeat).ThenInclude(y => y.Seat).Where(x => x.BasketId == user.Id).ToListAsync(); long amount = 0; // check if any seats if (tickets.Count > 0 && Total > 0) { // calculate the amount amount = long.Parse(Total.ToString("#.00").Replace(".", "")); if (amount < 100) { amount *= 100; } } else { // if basket empty return Basket View return(RedirectToAction(nameof(Basket))); } var chargeOptions = new ChargeCreateOptions { Amount = amount, Currency = "gbp", Description = "Theatre charge", CustomerId = user.SavedCustomerCard }; var chargeService = new ChargeService(); Charge charge = chargeService.Create(chargeOptions); // if charge succeeded create order if (charge.Status.ToLower() == "succeeded") { // charge succeeded, create an order Models.Order newOrder = new Models.Order() { OrderTime = DateTime.Now, UserId = user.Id, DeliveryMethod = selectedDelivery, IsPrinted = false }; // check who is the customer if (role[0] == "Customer") { newOrder.ClientName = user.FirstName + " " + user.LastName; } else if (role[0] == "AgencyOrClub") { newOrder.ClientName = user.AgencyOrClubName; } // see if there was a discount DateTime time = DateTime.Now; bool discount = false; if (((int)time.DayOfWeek < 5) && ((int)time.DayOfWeek > 0)) { discount = true; } List <TicketsInBasket> ticketsBought = new List <TicketsInBasket>(); // create a sold ticket for each seat reserved foreach (BasketTicket basketTicket in tickets) { TicketsInBasket ticket = new TicketsInBasket { Price = basketTicket.Price, RowNumber = basketTicket.BookedSeat.Seat.RowNumber, SeatLetter = basketTicket.BookedSeat.Seat.ColumnLetter, PerformanceName = basketTicket.Performance.Play.Name, Id = basketTicket.Id, PerformanceTime = basketTicket.Performance.Date }; ticketsBought.Add(ticket); SoldTicket soldTicket = new SoldTicket { PlayName = basketTicket.Performance.Play.Name, UserId = user.Id, CustomerName = newOrder.ClientName, PerformanceTimeAndDate = basketTicket.Performance.Date, ColumnLetter = ticket.SeatLetter, Band = basketTicket.BookedSeat.Seat.Band, RowNumber = ticket.RowNumber }; // check if there is a discount for week days if (discount) { soldTicket.PaidPrice = basketTicket.Price * 8 / 10; } else { soldTicket.PaidPrice = basketTicket.Price; } newOrder.SoldTickets.Add(soldTicket); } decimal finalPrice = 0; // add order to database await _context.Orders.AddAsync(newOrder); //reserve seats foreach (BasketTicket basketTicket in tickets) { var bookedSeat = await _context.BookedSeats .FirstOrDefaultAsync(x => x.Id == basketTicket.BookedSeatId); if (discount) { finalPrice += basketTicket.Price; } bookedSeat.Booked = 2; _context.Update(bookedSeat); } var basket = await _context.Basket.Include(x => x.Tickets).FirstOrDefaultAsync(x => x.UserId == user.Id); // remove all the tickets in the basket basket.Tickets.Clear(); await _context.SaveChangesAsync(); // if agency/club and approved, receive discounts for more than 20 tickets if (role[0] == "AgencyOrClub" && ticketsBought.Count > 19) { if (user.ApprovedMultipleDiscounts == true) { finalPrice = finalPrice * 9 / 10; } else { finalPrice = finalPrice * (decimal)9.5 / 10; } } // create tickets and receipt view TicketAndReceipt ticketAndReceipt = new TicketAndReceipt() { TotalCost = Total, OrderId = newOrder.Id, PersonName = newOrder.ClientName, Tickets = ticketsBought, DiscountApplied = discount, Saved = 0 }; if (discount) { ticketAndReceipt.Saved = Total - finalPrice; } return(View(nameof(Checkout), ticketAndReceipt)); } else { // if payment failed resend to basket return(RedirectToAction(nameof(Basket))); } }
public ActionResult InserOrder(Models.Order order) { return(View("Index")); }
public void AddOrder(Models.Order o) { orderList.Add(o); }
public UpdateOrderResponse(Models.Order order = null, IList <Models.Error> errors = null) { Order = order; Errors = errors; }
public Builder Order(Models.Order order) { this.order = order; return(this); }
public async Task <(bool IsSuccess, Db.Order Orders, string ErrorMessage)> PostOrderAsync([FromBody] Models.Order order) { try { logger?.LogInformation("Creating order"); var mapper = configurationProvider.CreateMapper(); var neworder = mapper.Map <Db.Order>(order); if (neworder != null) { dbContext.Orders.Add(neworder); await dbContext.SaveChangesAsync(); logger?.LogInformation($"order created {neworder}"); var createPostOrderCommand = new CreatePostOrderCommand(order.OrderDate, order.Total, order.Items); await eventBus.SendCommand(createPostOrderCommand); return(true, neworder, null); } return(false, null, "Not created"); } catch (Exception ex) { logger?.LogError(ex.ToString()); return(false, null, ex.Message); } }
/// <summary> /// 新增訂單的畫面 /// </summary> /// <returns></returns> public ActionResult InsertOrder() { Models.Order order = new Models.Order(); order.CustName = "叡揚資訊"; return(View(order)); }
public Models.Order newOrder() { Models.Order order = new Models.Order(); Data.Order dOrder = new Data.Order{ customerID = order.customerID, discount = order.discount, address = order.address, status = order.status, timeStamp = order.timeStamp, orderDate = order.orderDate }; db.orders.Add(dOrder); try { db.SaveChanges(); } catch (Exception ex) { httpCtx.Trace.Warn("Database write Error", "Cannot a new order", ex); return new Models.Order(); } order.orderID = dOrder.orderID; routeDiffs(new[]{ new { op = "add", data = new { customers = new Models.Customer[0], products = new Models.Product[0], blobs = new Models.Blob[0], orders = new [] { order } } } }); return order; }