示例#1
0
        public CartModel Build(Cart sessionCart)
        {
            var u = AccountAdminModelBuilder.BuildOneUser(WebSecurity.CurrentUserName);
            var model = new CartModel();
            model.cart = sessionCart;
            foreach (var cartItem in sessionCart.listSku)
            {
                var sku = dataService.GetSkuById(cartItem.idSku);
                if (u != null && u.Discount > 0)
                {
                    sku.priceAct = sku.priceAct - ((sku.priceAct/100)*u.Discount);
                }
                sku.smalPhoto.path = string.Format("{0}/{1}", imagesPath.GetImagesPath(), sku.smalPhoto.path);
                    model.listSku.Add(sku);
            }

            foreach (var cartItem in model.cart.listSku)
            {
                var tmpSku = model.listSku.First(i => i.id == cartItem.idSku);
                cartItem.priceAct = tmpSku.priceAct;
            }

            model.menu = BuildMenu();
            model.listState = dataService.ListCartState();
            return model;
        }
示例#2
0
        public Cart AddorUpdateSkuToCart(Cart cart)
        {
            Cart result = null;
            try
            {
                dbService.Run(db =>
                {
                    var cartDB = db.GetRepository<Cart>().TryOne(cart.id);
                    if (cartDB == null)
                    {
                        result = db.GetRepository<Cart>().Add(cart);
                    }
                    else
                    {
                        cartDB.id = cart.id;
                        cartDB.name = cart.name;
                        cartDB.nameClient = cart.nameClient;
                        cartDB.phone = cart.phone;
                        cartDB.email = cart.email;
                        cartDB.city = cart.city;
                        cartDB.street = cart.street;
                        cartDB.numHome = cart.numHome;
                        cartDB.numFlat = cart.numFlat;
                        cartDB.comment = cart.comment;
                        cartDB.state = cart.state;
                        //cartDB.createDate = cart.createDate;
                        if (cart.listSku.Any())
                        {
                            cartDB.totalCount = cart.listSku.Sum(s => s.count);
                        }
                        else
                        {
                            cartDB.totalCount = cartDB.listSku.Sum(s => s.count);
                        }
                        db.GetRepository<Cart>().Update(cartDB);
                        result = cart;
                    }

                });

                    foreach (var item in cart.listSku)
                    {
                        dbService.Run(db =>
                        {
                            db.GetRepository<CartItem>().Remove(item);
                        });
                    }

                dbService.Run(db =>
                {
                    foreach (var item in cart.listSku)
                    {
                        item.CartId = result.id;
                    }
                    db.GetRepository<CartItem>().AddMany(cart.listSku.ToList());
                });
            }
            catch (Exception err)
            {
                result = cart;
                logger.Error(err.Message);
            }
            return result;
        }