public ActionResult Complete(Guid id)
        {
            CheckoutCompleteViewModel model = new CheckoutCompleteViewModel();

            model.order = OrderService.GetOrders(QuoteKey: id).FirstOrDefault();

            HttpCookie quoteCookie = ControllerContext.HttpContext.Request.Cookies["QuoteKey"];

            if (quoteCookie != null)
            {
                quoteCookie.Expires = DateTime.Now.AddDays(-1);
                ControllerContext.HttpContext.Response.Cookies.Set(quoteCookie);
            }

            HttpCookie cartCookie = ControllerContext.HttpContext.Request.Cookies["CartKey"];

            if (cartCookie != null)
            {
                cartCookie.Expires = DateTime.Now.AddDays(-1);
                ControllerContext.HttpContext.Response.Cookies.Set(cartCookie);
            }

            return(View(model));
        }
Ejemplo n.º 2
0
        public ActionResult AddressAndPayment(FormCollection values)
        {
            var order = new Order();

            TryUpdateModel(order);

            try
            {
                var username = values["Username"];
                var cart     = ShoppingCart.GetCart(HttpContext);

                order.Username   = username;
                order.OrderDate  = DateTime.Now;
                order.Total      = cart.GetTotal();
                order.IpAddress  = Request.UserHostAddress;
                order.IsWebOrder = Session["StoreType"] == null || (bool)Session["StoreType"];

                var value = values["Kön"];
                if (!string.IsNullOrEmpty(value))
                {
                    order.Sex = value.Equals("Man");
                }

                //var users = db.Users.ToList();
                //var orders = db.Orders.ToList();

                //if (!users.Exists(x => x.Username == username) || orders.Exists(x => x.Username == username))
                //{
                //    SetViewBag(order);
                //    return View(order);
                //}


                db.Orders.Add(order);
                db.SaveChanges();

                cart.CreateOrder(order);

                var products = db.Products.ToList();
                var model    = new CheckoutCompleteViewModel();

                var inStoreItems = products.Where(x => x.IsInStore).ToList();

                RecommendationCalculator calculator = new RecommendationCalculator();
                int itemKNearest           = 12;
                int userKNearest           = 7;
                var itemRecommendedProduct = calculator.RecommendProductItemBased(order, new CosineSimilarity(), itemKNearest);
                var userRecommendedProduct = calculator.RecommendProductUserBased(order, new CosineSimilarity(), userKNearest);

                // If we can't find a recommended product then choose a random product instead to recommend
                if (itemRecommendedProduct == null)
                {
                    model.ItemRecommendedProduct = null;
                }
                else
                {
                    model.ItemRecommendedProduct = itemRecommendedProduct;
                }

                model.UserRecommendedProduct = userRecommendedProduct;

                model.Order      = order;
                model.Products   = inStoreItems;
                model.IsWebOrder = order.IsWebOrder;

                return(View("Complete", model));
            }
            catch
            {
                SetViewBag(order);
                //Invalid - redisplay with errors
                return(View(order));
            }
        }