//GET Orders/OrderCompleted/6

        public async Task <IActionResult> OrderCompleted(int?orderid)
        {
            var user = await GetCurrentUserAsync();

            var viewModel = new OrderCompletedViewModel(_context, user, orderid);

            return(View(viewModel));
        }
Esempio n. 2
0
        public ActionResult Index()
        {
            // check that cart has been processed
            if (!cart.orderid.HasValue)
            {
                return(RedirectToAction("Index", "Cart", new { Area = "checkout" }));
            }

            var viewmodel = new OrderCompletedViewModel(baseviewmodel)
            {
                store_url    = cart.MASTERsubdomain.ToHostName().ToDomainUrl(),
                order_number = cart.order.orderNumber.ToString("D8"),
                order_url    = cart.order.ToOrderLink()
            };

            viewmodel.paymentType = cart.paymentMethod.ToEnum <PaymentMethodType>();
            switch (viewmodel.paymentType)
            {
            case PaymentMethodType.Custom:
                if (cart.paymentCustomId.HasValue)
                {
                    viewmodel.paymentmethod.instructions = cart.paymentMethod1.instructions;
                    viewmodel.paymentmethod.name         = cart.paymentMethod1.name;
                }
                break;

            case PaymentMethodType.Paypal:
                viewmodel.paymentmethod.name = "Paypal";
                break;

            default:
                break;
            }

            foreach (var entry in cart.cartitems)
            {
                var cartitem = new CartItem()
                {
                    name          = entry.product_variant.ToProductFullTitle(),
                    quantity      = entry.quantity,
                    thumbnail_url = entry.product_variant.product.thumb.HasValue
                                                           ? entry.product_variant.product.product_image.ToModel(
                        Imgsize.THUMB).url
                                                           : GeneralConstants.PHOTO_NO_THUMBNAIL
                };
                viewmodel.cart_items.Add(cartitem);
            }

            return(View(viewmodel));
        }
Esempio n. 3
0
        public IActionResult CheckOut(OrderViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var order = new Order
                {
                    FirstName   = viewModel.customer.FirstName,
                    LastName    = viewModel.customer.LastName,
                    Address     = viewModel.customer.Address,
                    Email       = viewModel.Email,
                    ZipCode     = viewModel.customer.Zipcode,
                    OrderPlaced = DateTime.Now,
                    OrderLines  = new List <OrderDetail>()
                };

                if (viewModel.customer.CustomerId != 0)
                {
                    order.CustomerId = viewModel.customer.CustomerId; // add ID only when logged in as customer.
                }

                foreach (var item in viewModel.Cart)
                {
                    var orderDetail = new OrderDetail
                    {
                        ProductId = item.Product.Id,
                        Quantity  = item.Quantity
                    };

                    order.OrderLines.Add(orderDetail);
                }

                _unitOfWork.Orders.Add(order);
                _unitOfWork.Complete();

                var orderCompleteViewModel = new OrderCompletedViewModel
                {
                    Date    = order.OrderPlaced,
                    OrderId = order.Id
                };

                // Clear cart -> in the future as service
                Response.Cookies.Append("MyCart", "");

                return(View("CheckOutCompleted", orderCompleteViewModel));
            }

            return(View(viewModel));
        }
Esempio n. 4
0
        // GET: Order/Completed?orderId=5&paymentId=5
        public ActionResult Completed(int orderId, int paymentId)
        {
            Order   order   = db.Orders.Find(orderId);
            Payment payment = db.Payments.Find(paymentId);

            var model = new OrderCompletedViewModel
            {
                OrderId = order.Id,
            };

            if (payment.Status == PaymentStatus.Pending && payment.PaymentMethod.Type == PaymentMethodType.Manual)
            {
                model.Message = payment.PaymentMethod.Settings;
            }

            return(View(model));
        }