/// <summary>Indexes this instance.</summary>
        /// <returns>Task&lt;IActionResult&gt;.</returns>
        public async Task <IActionResult> Index()
        {
            var user = await _userManager.FindUserByPrincipal(HttpContext.User);

            bool AreThereItems = await _context.ShoppingCartItem.AnyAsync(x => x.UserId == user.Id && x.Ordered == false);

            if (AreThereItems == false)
            {
                return(RedirectToAction(nameof(CartEmpty)));
            }
            else
            {
                ShoppingCartItemViewModel items = new ShoppingCartItemViewModel();
                items.Items = await _context.ShoppingCartItem.Where(x => x.UserId == user.Id && x.Ordered == false).ToListAsync();

                foreach (var item in items.Items)
                {
                    if (item.Quantity > 20)
                    {
                        items.Sum += item.Quantity * _context.Item.FirstOrDefault(x => x.Id == item.ItemId).WholesalePrice;
                    }
                    else
                    {
                        items.Sum += item.Quantity * _context.Item.FirstOrDefault(x => x.Id == item.ItemId).Price;
                    }
                }
                return(View(items));
            }
        }
        public ActionResult Update(ShoppingCartViewModel model)
        {
            ShoppingCart cart = GetOrCreateCart();

            foreach (ShoppingCartItem item in cart.ShoppingCartItems.ToList())
            {
                ShoppingCartItemViewModel updatedItem = model.Items.FirstOrDefault(i => i.Id == item.Id);
                if (updatedItem == null)
                {
                    continue;
                }
                if (updatedItem.Quantity <= 0)
                {
                    db.ShoppingCartItems.Remove(item);
                    db.SaveChanges();
                }
                else if (updatedItem.Quantity != item.Quantity)
                {
                    item.Quantity = updatedItem.Quantity;
                    db.SaveChanges();
                }
            }

            return(RedirectToAction("Index"));
        }
Beispiel #3
0
        public IActionResult AddToShoppingCart(ShoppingCartItemViewModel model)
        {
            List <ShoppingCartItemViewModel> cart = null;

            if (_session.Keys.Contains(Constants.Cart))
            {
                cart = _session.Get <List <ShoppingCartItemViewModel> >(Constants.Cart);
                var item = cart.FirstOrDefault(a => a.Id == model.Id);
                if (item == null)
                {
                    cart.Add(model);
                }
                else
                {
                    cart.FirstOrDefault(a => a.Id == model.Id).Quantity++;
                }
                _session.Set(Constants.Cart, cart);
            }
            else
            {
                cart = new List <ShoppingCartItemViewModel> {
                    model
                };
                _session.Set(Constants.Cart, cart);
            }
            return(RedirectToAction(nameof(this.ShoppingCart)));
        }
        public ShoppingCartItemViewModel AddItemToCart(int cartNumber, int productId)
        {
            ShoppingCartViewModel shoppingCartViewModel = Mapper.Map <ShoppingCart, ShoppingCartViewModel>(_shoppingCartService.Search(x => x.Number == cartNumber)
                                                                                                           .FirstOrDefault());

            if (shoppingCartViewModel == null)
            {
                Add(new ShoppingCartViewModel {
                    Number = cartNumber
                });

                shoppingCartViewModel = Mapper.Map <ShoppingCart, ShoppingCartViewModel>(_shoppingCartService.Search(x => x.Number == cartNumber).FirstOrDefault());
            }

            BeginTransaction();

            ShoppingCartItem item = new ShoppingCartItem();

            item.ProductId      = productId;
            item.ShoppingCartId = shoppingCartViewModel.Id;

            ShoppingCartItemViewModel shoppingCartItemViewModel = Mapper.Map <ShoppingCartItem, ShoppingCartItemViewModel>(_shoppingCartItemService.Add(item));

            Commit();

            return(shoppingCartItemViewModel);
        }
Beispiel #5
0
        public List <CustomerShoppingCartViewModel> UpdateShoppingCart(ShoppingCartItemViewModel Model)
        {
            string Query = string.Empty;

            if (Model.Removefromcart)
            {
                foreach (var item in Model.ItesList)
                {
                    Query = @"delete from ShoppingCartItem where CustomerId = @custid and ProductId = @productid and ShoppingCartTypeId=@shoppingcarttypeid";
                    var Param = new { custid = Model.CustomerId, productid = item.ProductId, shoppingcarttypeid = Model.ShoppingCartTypeId };
                    var Res   = _ShoppingCartItemRepository.Delete(Query, Param);
                }
            }
            else
            {
                foreach (var item in Model.ItesList)
                {
                    Query = @"update ShoppingCartItem set Quantity = @qty where CustomerId = @custid and ProductId = @prodductid and ShoppingCartTypeId=@shoppingcarttypeid";
                    var Param = new { qty = item.Quantity, custid = Model.CustomerId, productid = item.ProductId, shoppingcarttypeid = Model.ShoppingCartTypeId };
                    var Res   = _ShoppingCartItemRepository.Update(Query, Param);
                }
            }
            var UpadtedSchppingCart = GetShoppingCart(Model.CustomerId, Model.ShoppingCartTypeId);

            return(UpadtedSchppingCart);
        }
        public IHttpActionResult UpdateShoppingCartApp(string productId, int shoppingCartTypeId, int quantity, int CustomerID, bool Removefromcart)
        {
            List <ShoppingCartItemViewModel> productlist = new List <ShoppingCartItemViewModel>();
            var list = productId.Split(',').Where(x => x != "").Select(x => Convert.ToInt32(x)).ToList();

            foreach (var item in list)
            {
                ShoppingCartItemViewModel model = new ShoppingCartItemViewModel();
                model.ProductId = item;
                productlist.Add(model);
            }
            ShoppingCartItemViewModel Model = new ShoppingCartItemViewModel
            {
                ShoppingCartTypeId = shoppingCartTypeId,
                Quantity           = quantity,
                CustomerId         = CustomerID,
                ItesList           = productlist,
                Removefromcart     = Removefromcart
            };

            return(RunInSafe(() =>
            {
                var data = _IShopingCartService.UpdateShoppingCart(Model);
                tebResponse.Data = data;
                tebResponse.IsSuccess = true;
                return Ok(tebResponse);
            }));
        }
Beispiel #7
0
        public void PostSuccess()
        {
            _shoppingCartItemService.Setup(s => s.Add(It.IsAny <long>(), It.IsAny <long>(), It.IsAny <int>()));

            var cartItem = new ShoppingCartItemViewModel()
            {
                ProductId = 1, ProductQuantity = 1, ShoppingCartId = 1
            };


            var result = _controller.Post(cartItem);

            Assert.NotNull(result);
            Assert.IsType <OkObjectResult>(result.Result);

            var httpObjResult = result.Result as OkObjectResult;

            Assert.NotNull(httpObjResult);
            Assert.True(httpObjResult.StatusCode == 200);

            var value = httpObjResult.Value;

            Assert.NotNull(value);
            Assert.False(string.IsNullOrWhiteSpace(value.ToString()));
            Assert.Same("success", value);
        }
        public async Task <IHttpActionResult> GetShoppingCartItem(int id)
        {
            ShoppingCartItemViewModel shoppingCartItem = await db.ShoppingCartItem.Select(AsShoppingCartItemViewModel).Where(c => c.ShoppingCartId == id).FirstOrDefaultAsync();

            if (shoppingCartItem == null)
            {
                return(NotFound());
            }

            return(Ok(shoppingCartItem));
        }
        public async Task <IHttpActionResult> GetShoppingCartItem(int cartId, int itemId)
        {
            ShoppingCartItemViewModel shoppingCartItem = await db.ShoppingCartItem.Where(ci => ci.ShoppingCartId == cartId && ci.ItemId == itemId)
                                                         .Select(AsShoppingCartItemViewModel).FirstOrDefaultAsync();

            //if (shoppingCartItem == null)
            //{
            //    return NotFound();
            //}

            return(Ok(shoppingCartItem));
        }
Beispiel #10
0
 public IActionResult RemoveFromShoppingCart(Guid id)
 {
     if (_session.Keys.Contains(Constants.Cart))
     {
         List <ShoppingCartItemViewModel> cart = _session.Get <List <ShoppingCartItemViewModel> >(Constants.Cart);
         ShoppingCartItemViewModel        item = cart.Find(a => a.Id == id);
         if (item != null)
         {
             cart.Remove(item);
             _session.Set(Constants.Cart, cart);
         }
     }
     return(RedirectToAction(nameof(this.ShoppingCart)));
 }
Beispiel #11
0
        public void PostInternalError()
        {
            _shoppingCartItemService.Setup(s => s.Add(It.IsAny <long>(), It.IsAny <long>(), It.IsAny <int>())).Throws(new Exception());

            var shoppingCartItem = new ShoppingCartItemViewModel();

            var result = _controller.Post(shoppingCartItem);

            Assert.NotNull(result);
            Assert.IsType <StatusCodeResult>(result.Result);

            var httpObjResult = result.Result as StatusCodeResult;

            Assert.True(httpObjResult.StatusCode == 500);
        }
Beispiel #12
0
        // AJAX: /ShoppingCart/AddItemToShoppingCart/
        public JsonResult AddItemToShoppingCart(ShoppingCartItemViewModel itemModel)
        {
            // Check if there's a cart for this session
            ShoppingCart shoppingCart = _shoppingCartService.GetShoppingCart(CookieFactory.GetShoppingCartCookie(Request, Response));

            ShoppingCartItem item    = Mapper.Map <ShoppingCartItemViewModel, ShoppingCartItem>(itemModel);
            ShoppingCartItem retItem = _shoppingCartItemService.AddOrUpdateShoppingCartItem(item, shoppingCart.Guid);

            _shoppingCartItemService.SaveShoppingCartItem();

            ShoppingCartItemViewModel newModel = Mapper.Map <ShoppingCartItem, ShoppingCartItemViewModel>(retItem);

            decimal total = _offerService.GetTotal(shoppingCart, _itemService.GetItems());

            return(Json(new { newModel, total = total }, JsonRequestBehavior.AllowGet));
        }
Beispiel #13
0
        public ShoppingCartItemViewModel Update(ShoppingCartItemViewModel shoppingCartItemViewModel)
        {
            var shoppingCartItem = Mapper.Map <ShoppingCartItemViewModel, ShoppingCartItem>(shoppingCartItemViewModel);

            BeginTransaction();

            if (!shoppingCartItem.ValidationResult.IsValid)
            {
                return(shoppingCartItemViewModel);
            }

            _shoppingCartItemService.Update(shoppingCartItem);

            Commit();

            return(shoppingCartItemViewModel);
        }
        public ShoppingCartItemViewModel Update(ShoppingCartItemViewModel shoppingCartItemViewModel)
        {
            var shoppingCartItem = new ShoppingCartItem
            {
                Id             = shoppingCartItemViewModel.Id,
                Active         = shoppingCartItemViewModel.Active,
                ProductId      = shoppingCartItemViewModel.ProductId,
                ShoppingCartId = shoppingCartItemViewModel.ShoppingCartId
            };

            BeginTransaction();

            _shoppingCartItemService.Update(shoppingCartItem);

            Commit();

            return(shoppingCartItemViewModel);
        }
        public ActionResult <string> Post([FromBody] ShoppingCartItemViewModel item)
        {
            try
            {
                _logger.LogInformation("Received post request");

                if (ModelState.IsValid)
                {
                    _service.Add(item.ShoppingCartId, item.ProductId, item.ProductQuantity);

                    return(Ok("success"));
                }
                else
                {
                    return(BadRequest(ModelState));
                }
            }
            catch (Exception exception)
            {
                _logger.LogError(exception, exception.Message);
                return(new StatusCodeResult(500));
            }
        }
        private void FillWithDummyData()
        {
            FullPrice     = "$100.50";
            TotalDiscount = "$10.50";
            TotalPrice    = "$90.00";

            ShoppingCartItemViewModels = new ObservableCollection <ShoppingCartItemViewModel>()
            {
                new ShoppingCartItemViewModel(new ShoppingCartItem()
                {
                    Id      = Guid.NewGuid().ToString(),
                    Product = new Product()
                    {
                        Title = "Product 1", Description = "Description of Product 1", ListPrice = 25.10, DiscountPercentage = 10, ProductNumber = "1", ImageUri = new Uri("ms-appx:///Assets/StoreLogo.png")
                    },
                    Quantity = 1,
                    Currency = "USD"
                }, null),
                new ShoppingCartItemViewModel(new ShoppingCartItem()
                {
                    Id      = Guid.NewGuid().ToString(),
                    Product = new Product()
                    {
                        Title = "Product 2", Description = "Description of Product 2", ListPrice = 25.10, DiscountPercentage = 10, ProductNumber = "2", ImageUri = new Uri("ms-appx:///Assets/StoreLogo.png")
                    },
                    Quantity = 20,
                    Currency = "USD"
                }, null),
                new ShoppingCartItemViewModel(new ShoppingCartItem()
                {
                    Id      = Guid.NewGuid().ToString(),
                    Product = new Product()
                    {
                        Title = "Product 3", Description = "Description of Product 3", ListPrice = 25.10, DiscountPercentage = 10, ProductNumber = "3", ImageUri = new Uri("ms-appx:///Assets/StoreLogo.png")
                    },
                    Quantity = 30,
                    Currency = "USD"
                }, null),
                new ShoppingCartItemViewModel(new ShoppingCartItem()
                {
                    Id      = Guid.NewGuid().ToString(),
                    Product = new Product()
                    {
                        Title = "Product 4", Description = "Description of Product 4", ListPrice = 25.10, DiscountPercentage = 10, ProductNumber = "4", ImageUri = new Uri("ms-appx:///Assets/StoreLogo.png")
                    },
                    Quantity = 14,
                    Currency = "USD"
                }, null),
                new ShoppingCartItemViewModel(new ShoppingCartItem()
                {
                    Id      = Guid.NewGuid().ToString(),
                    Product = new Product()
                    {
                        Title = "Product 5", Description = "Description of Product 5", ListPrice = 25.10, DiscountPercentage = 10, ProductNumber = "5", ImageUri = new Uri("ms-appx:///Assets/StoreLogo.png")
                    },
                    Quantity = 25,
                    Currency = "USD"
                }, null),
            };

            SelectedItem = ShoppingCartItemViewModels[0];
        }