// GET: Orders/Create // To protect from overposting attacks, please enable the specific properties you want to bind to, for // more details see http://go.microsoft.com/fwlink/?LinkId=317598. public IActionResult Create(Order cart) { //check if there is a pending order Order FindCart = _context.Orders.Where(o => o.Customer.UserName == User.Identity.Name). FirstOrDefault(o => o.OrderStatus == Order.Status.Pending); //if there is no pending order, create one if (FindCart == null) { cart.OrderNumber = GenerateOrderNumber.GetNextOrderNumber(_context); cart.OrderDate = System.DateTime.Today; cart.OrderStatus = Order.Status.Pending; //find customer associated with order String Userid = User.Identity.Name; AppUser customer = _context.Users.FirstOrDefault(u => u.UserName == Userid); cart.Customer = customer; if (ModelState.IsValid) { _context.Orders.Add(cart); _context.SaveChanges(); return(RedirectToAction("Details", new { id = cart.OrderID })); } } //if there is a pending order, go to it else { //find the order based on the order id Order order = _context.Orders.Find(FindCart.OrderID); return(RedirectToAction("Details", new { id = order.OrderID })); } return(View(FindCart)); }
public void Setup() { Mock <IPaymentInitializer> mockInitializer = new Mock <IPaymentInitializer>(); _orderNumberGeneratorMock = new Mock <IOrderNumberGenerator>(); _orderNumberGenerator = new GenerateOrderNumber(mockInitializer.Object, _orderNumberGeneratorMock.Object); }
public override PaymentInitializeResult Initialize() { IPaymentInitializer initializer = new GenerateOrderNumber( new InitializePayment( new RedirectUser(), _paymentManager, _parameterReader, _cartActions, _additionalValuesFormatter), _orderNumberGenerator); return(initializer.Initialize(this, null, null, null)); }
public override PaymentInitializeResult Initialize() { IPaymentInitializer initializer = new GenerateOrderNumber( new GetConsumerLegalAddress( new InitializePayment( new PurchaseInvoiceSale(_paymentManager, _paymentActions), _paymentManager, _parameterReader, _cartActions, _additionalValuesFormatter), _verificationManager, _paymentActions), _orderNumberGenerator); return(initializer.Initialize(this, null, null, null)); }