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; }
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; }