示例#1
0
        public string AddProductToCart(byte[] byteArray)
        {
            BinaryFormatter bf     = new BinaryFormatter();
            MemoryStream    stream = new MemoryStream(byteArray);
            var             cart   = bf.Deserialize(stream) as BestPurchase.DataModel.ShoppingCart;
            ShoppingCart    Cart   = this.ConvertBLCartToDBCart(cart);

            using (var context = new BestPurchaseDBEntities())
            {
                var cartItem = context.ShoppingCarts.SingleOrDefault(
                    c => c.Id == Cart.Id &&
                    c.ProductId == Cart.ProductId);

                // Creating new shopping cart
                if (cartItem == null)
                {
                    context.ShoppingCarts.Add(Cart);
                }
                else
                {
                    // Incrementing quantity if the item is already in the cart
                    cartItem.Quantity += Cart.Quantity;
                }
                // Save changes
                context.SaveChanges();
            }
            return("Done");
        }
示例#2
0
        public byte[] GetAllProducts()
        {
            BestPurchaseDBEntities db = new BestPurchaseDBEntities();
            var      dbList           = db.Products.ToList();
            Products products         = ConvertDBProductsToBLProducts(dbList);

            return(Formatter.Serialize <Products>(products));
        }
示例#3
0
        public byte[] GetShoppingCartContent(string cartId)
        {
            BestPurchaseDBEntities db = new BestPurchaseDBEntities();
            var dbList = db.ShoppingCarts.Where(c => c.Id == cartId).ToList();
            ShoppingCartCollection carts = ConvertDBCartsToBLCarts(dbList, db);

            return(Formatter.Serialize(carts));
        }
示例#4
0
        public string AddOrder(byte[] byteArray)
        {
            BinaryFormatter bf      = new BinaryFormatter();
            MemoryStream    stream  = new MemoryStream(byteArray);
            var             order   = bf.Deserialize(stream) as BestPurchase.DataModel.Order;
            Order           dbOrder = ConvertBLOrderToDBOrder(order);

            using (var context = new BestPurchaseDBEntities())
            {
                context.Orders.Add(dbOrder);
                context.SaveChanges();
            }
            return("Added");
        }
示例#5
0
        public string DeleteProductFromCart(byte[] byteArray)
        {
            BinaryFormatter bf     = new BinaryFormatter();
            MemoryStream    stream = new MemoryStream(byteArray);
            var             cart   = bf.Deserialize(stream) as BestPurchase.DataModel.ShoppingCart;
            ShoppingCart    Cart   = this.ConvertBLCartToDBCart(cart);

            using (var context = new BestPurchaseDBEntities())
            {
                var itemToRemove = context.ShoppingCarts.SingleOrDefault(x =>
                                                                         cart.CartId == x.Id && x.ProductId == Cart.ProductId);
                context.ShoppingCarts.Remove(itemToRemove);
                context.SaveChanges();
            }
            return("Done");
        }
示例#6
0
        public byte[] GetProductById(int productId)
        {
            BestPurchaseDBEntities db = new BestPurchaseDBEntities();
            Product product           = db.Products.FirstOrDefault(c => c.Id == productId);

            DataModel.Product blProduct = ConvertDBProductToBLProduct(product);

            // Getting image as byte array
            MemoryStream memoryStream = new MemoryStream();

            byte[] fileContents;
            var    path = Path.Combine(HttpContext.Current.Server.MapPath("~/Pictures"),
                                       product.ImageSource);

            fileContents          = File.ReadAllBytes(path);
            blProduct.ImageSource = fileContents;
            return(Formatter.Serialize(blProduct));
        }
示例#7
0
        private ShoppingCartCollection ConvertDBCartsToBLCarts(List <ShoppingCart> dbList, BestPurchaseDBEntities db)
        {
            ShoppingCartCollection carts = new ShoppingCartCollection();

            foreach (var item in dbList)
            {
                DataModel.ShoppingCart cart = new DataModel.ShoppingCart();
                Product           product   = db.Products.FirstOrDefault(c => c.Id == item.ProductId);
                DataModel.Product pro       = ConvertDBProductToBLProduct(product);
                cart.Added    = pro;
                cart.Quantity = item.Quantity;
                cart.CartId   = item.Id;
                carts.ListOfCarts.Add(cart);
            }
            return(carts);
        }