Ejemplo n.º 1
0
        public bool AddToBasket(int product, int shop)
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext())
            {
                var dbProduct = db.Products.Filter(shop).FirstOrDefault(p => p.Id == product);
                if (dbProduct == null)
                {
                    return(false);
                }
                var basket = db.GetCurrentBasket(userId, shop);
                if (basket.BasketItems.FirstOrDefault(i => i.Product.Id == product) != null)
                {
                    return(false);
                }

                db.BasketItems.Add(new BasketItem()
                {
                    Amount         = 1,
                    Product        = dbProduct,
                    UnitPrice      = dbProduct.DiscountedPrice(),
                    DiscountedFrom = dbProduct.UnitPrice,
                    Basket         = basket
                });
                db.SaveChanges();
                return(true);
            }
        }
Ejemplo n.º 2
0
 public static bool InBasket(this ProductViewModel product, string userId, int shop)
 {
     using (var db = new UwtContext())
     {
         var basket = db.GetCurrentBasket(userId, shop);
         return(basket.BasketItems.FirstOrDefault(b => b.Product.Id == product.Id) != null);
     }
 }
Ejemplo n.º 3
0
        public ActionResult Index(int shop, string deliveryaddress, string deliveryperson)
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext()) {
                var basket = db.GetCurrentBasket(userId, shop);
                if (basket != null)
                {
                    basket.DeliveryAddress = deliveryaddress;
                    basket.DeliveryPerson  = deliveryperson;
                    db.SaveChanges();
                }
                return(RedirectToAction("Index", new { shop = shop }));
            }
        }
Ejemplo n.º 4
0
        public ActionResult Index(int shop)
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext())
            {
                var basket = db.GetCurrentBasket(userId, shop);
                if (basket != null)
                {
                    ViewBag.Shop = Mapper.Map <ShopViewModel>(db.Shops.FirstOrDefault(s => s.Id == shop));
                    var model = Mapper.Map <BasketViewModel>(basket);
                    model.BasketItems.ForEach(i => i.Product.Image = i.Product.Image.Replace("~", ""));
                    return(View(model));
                }
                return(HttpNotFound());
            }
        }
Ejemplo n.º 5
0
        public int BuyBasket(int shop)
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext()) {
                var basket = db.GetCurrentBasket(userId, shop);
                if (!basket.ReserveProducts(db))
                {
                    return(0);
                }
                var invoice = new Invoice {
                    Basket = basket, DateCreated = DateTime.UtcNow
                };
                db.Invoices.Add(invoice);
                db.SaveChanges();
                return(invoice.Id);
            }
        }
Ejemplo n.º 6
0
 public ActionResult Index(int?id, int?category, string search)
 {
     using (var db = new UwtContext())
     {
         var shop = db.Shops.FirstOrDefault(s => s.Id == id);
         if (shop == null)
         {
             var shops = db.Shops.ToList().Select(Mapper.Map <ShopViewModel>).ToList();
             return(View(shops));
         }
         var model    = Mapper.Map <ShopViewModel>(shop);
         var products = db.Products.Filter(model.Id).Where(p => category == null || p.Categories.FirstOrDefault(c => c.Id == category) != null).ToList().Select(Mapper.Map <ProductViewModel>).ToList();
         if (User.Identity.IsAuthenticated)
         {
             var userId = User.Identity.GetUserId();
             products.ForEach(p => p.InBasket    = p.InBasket(userId, shop.Id));
             ViewBag.BasketItemsCount            = db.GetCurrentBasket(userId, shop.Id).BasketItems.Count;
             products.ForEach(p => p.MessageSent = db.Messages.Any(m => m.Sender.Id == userId && m.Product.Id == p.Id && m.DateRecieved > DateTime.UtcNow));
         }
         ViewBag.Products = products;
         return(View("Shop", model));
     }
 }
Ejemplo n.º 7
0
        public bool UpdateBasketAmount(int product, int newAmount)
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext())
            {
                var dbProduct = db.Products.IncludeAll().FirstOrDefault(p => p.Id == product);
                if (dbProduct == null)
                {
                    return(false);
                }

                var basket = db.GetCurrentBasket(userId, dbProduct.Shop.Id);
                var item   = basket.BasketItems.FirstOrDefault(i => i.Product.Id == product);
                if (item == null)
                {
                    return(false);
                }
                item.Amount = newAmount;
                db.SaveChanges();
                return(true);
            }
        }