示例#1
0
        public async Task <ShoppingCart> ChangeEntryAmount(ShoppingCartEntry entry, int amount)
        {
            var request = await _shoppingCartDataService.MakeRequest(new ApiRequest(ApiRequestType.PUT)
            {
                Uri = baseUri + "ShoppingCart/Entry/" + entry.Id + "/Amount/" + amount
            });

            return(request.AsSingle());
        }
示例#2
0
        public async void RemoveEntryFromShoppingCart(ShoppingCartEntry entry)
        {
            var data = await _catalogDataService.RemoveEntryFromShoppingCart(entry);

            if (data != null)
            {
                ShoppingCart = data;
            }
        }
示例#3
0
        public async Task <ShoppingCart> RemoveEntryFromShoppingCart(ShoppingCartEntry entry)
        {
            var request = await _shoppingCartDataService.MakeRequest(new ApiRequest(ApiRequestType.PUT)
            {
                Uri = baseUri + "ShoppingCart/Remove/" + entry.Product.Id
            });

            return(request.AsSingle());
        }
示例#4
0
        public async Task IncrementCartQuantity(int entryId)
        {
            AppUser user = await GetCurrentUser();

            ShoppingCartEntry entry = user.ShoppingCartEntries.Where(e => e.ShoppingCartEntryID == entryId).Single(); //userRepository.GetShoppingCartEntryByID(entryId);

            entry.Quantity++;
            userRepository.UpdateShoppingCartEntry(entry);

            this.unitOfWork.Save();
        }
示例#5
0
        public void UpdateShoppingCartEntry(ShoppingCartEntry shoppingCartEntry)
        {
            ShoppingCartEntry targetShoppingCartEntry = context.ShoppingCartEntries.Find(shoppingCartEntry.ShoppingCartEntryID);

            if (targetShoppingCartEntry != null)
            {
                targetShoppingCartEntry.Quantity  = shoppingCartEntry.Quantity;
                targetShoppingCartEntry.DateAdded = shoppingCartEntry.DateAdded;
                targetShoppingCartEntry.ListingID = shoppingCartEntry.ListingID;
                targetShoppingCartEntry.UserID    = shoppingCartEntry.UserID;
            }
        }
示例#6
0
        public void UpdateShoppingCartEntry(int entryId, int quantity)
        {
            ShoppingCartEntry entry = userRepository.GetShoppingCartEntriesQuery().Where(a => a.ShoppingCartEntryID == entryId).SingleOrDefault(); //userRepository.GetShoppingCartEntries().Where(e => e.ListingID == listingId && Object.Equals(currentUser.Id, e.UserID)).SingleOrDefault();

            if (entry != null)
            {
                entry.Quantity = quantity;
                userRepository.UpdateShoppingCartEntry(entry);
            }

            unitOfWork.Save();
        }
示例#7
0
        private async Task ProductPrompt(ITurnContext context, Prompts.TextResult result)
        {
            if (string.IsNullOrWhiteSpace(result.Value))
            {
                var entry = new ShoppingCartEntry {
                    ProductName = result.Value, Amount = 1
                };
                _dataContext.ShoppingCartEntries.Add(entry);
                _dataContext.SaveChanges();
                await context.SendActivity($"Ow, dat, zeg dat dan! Staat er nu op.");

                result.Status = Prompts.PromptStatus.Recognized;
            }
            result.Status = Prompts.PromptStatus.NotRecognized;
        }
示例#8
0
        public async Task <bool> ListingQuantityExceedsCartQuantity(int listingId, int entryId)
        {
            AppUser user = await GetCurrentUser();

            ShoppingCartEntry entry   = user.ShoppingCartEntries.Where(e => e.ShoppingCartEntryID == entryId).Single(); //userRepository.GetShoppingCartEntryByID(entryId);
            Listing           listing = listingRepository.GetListingByID(listingId);

            if (listing.Quantity > entry.Quantity)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#9
0
        public async void ChangeEntryAmount(ShoppingCartEntry entry, int amount)
        {
            ShoppingCart data = null;

            if (amount <= 0)
            {
                RemoveEntryFromShoppingCart(entry);
            }
            if (amount > 0)
            {
                data = await _catalogDataService.ChangeEntryAmount(entry, amount);
            }
            if (data != null)
            {
                ShoppingCart = data;
            }
        }
示例#10
0
        private async Task AddToCart(DialogContext dialogContext, object args, SkipStepFunction next)
        {
            var luisResult  = dialogContext.Context.Services.Get <RecognizerResult>(LuisRecognizerMiddleware.LuisRecognizerResultKey);
            var productName = luisResult.GetEntity <string>("Product");
            var amount      = luisResult.GetEntity <int>("Amount");

            if (!string.IsNullOrWhiteSpace(productName))
            {
                var entry = new ShoppingCartEntry {
                    ProductName = productName, Amount = (amount > 0 ? amount : 1)
                };
                _dataContext.ShoppingCartEntries.Add(entry);
                _dataContext.SaveChanges();
                await dialogContext.Context.SendActivity($"Goede keus! Ik heb het op het boodschappenlijstje gezet voor je.");
            }
            else
            {
                await dialogContext.Prompt("ProductPrompt", "Sorry, wat wil je dat ik op het boodschappenlijstje zet?");
            }
        }
        public IShoppingCartEntry Add(string SKU, decimal UnitPrice, int Quantity = 1)
        {
            if (string.IsNullOrWhiteSpace(SKU))
            {
                throw new ArgumentException("No SKU provided", "SKU");
            }
            else if (UnitPrice < 0)
            {
                throw new ArgumentException("UnitPrice must be greater than zero", "UnitPrice");
            }

            var shoppingCartEntry = _cart.FirstOrDefault(e => e.SKU == SKU);

            if (shoppingCartEntry == null)
            {
                shoppingCartEntry = new ShoppingCartEntry(SKU, UnitPrice);
                _cart.Add(shoppingCartEntry);
            }

            shoppingCartEntry.AddQuantity(Quantity);

            return(shoppingCartEntry);
        }
示例#12
0
        public async Task <IActionResult> AddProductToBasket(int userId, int productId)
        {
            var user    = _dbContext.Users.Include(u => u.Basket).FirstOrDefault(u => u.Id == userId);
            var product = _dbContext.Products.FirstOrDefault(p => p.Id == productId);
            var entry   = _dbContext.ShoppingCartEntries.FirstOrDefault(e => e.UserId == userId && e.ProductId == productId);

            if (user != null && product != null)
            {
                if (entry != null)
                {
                    entry.Quantity++;
                }
                else
                {
                    var shoppingCartEntry = new ShoppingCartEntry()
                    {
                        User      = user,
                        UserId    = userId,
                        Product   = product,
                        ProductId = productId,
                        Quantity  = 1
                    };
                    await _dbContext.ShoppingCartEntries.AddAsync(shoppingCartEntry);

                    user.Basket.Add(shoppingCartEntry);
                }

                await _dbContext.SaveChangesAsync();

                return(RedirectToAction("ProductPage", "Catalog", new { productId = productId }));
            }
            else
            {
                return(RedirectToAction("Index", "Catalog"));
            }
        }
示例#13
0
        public async Task AddItemToCart(int listingId)
        {
            Listing listing = listingRepository.GetListingByIDStripped(listingId);

            if (listing != null)
            {
                AppUser user = await GetCurrentUserSimple();

                ShoppingCartEntry entry = userRepository.GetShoppingCartEntriesQuery().Where(a => a.ListingID == listingId && String.Equals(user.Id, a.UserID)).SingleOrDefault(); //userRepository.GetShoppingCartEntries().Where(e => e.ListingID == listingId && Object.Equals(currentUser.Id, e.UserID)).SingleOrDefault();

                if (entry == null)
                {
                    entry = new ShoppingCartEntry(user, listing, 1);
                    userRepository.InsertShoppingCartEntry(entry);
                }
                else
                {
                    entry.Quantity++;
                    userRepository.UpdateShoppingCartEntry(entry);
                }

                unitOfWork.Save();
            }
        }
示例#14
0
        public void DeleteShoppingCartEntry(int shoppingCartEntryID)
        {
            ShoppingCartEntry cartEntry = context.ShoppingCartEntries.Find(shoppingCartEntryID);

            context.ShoppingCartEntries.Remove(cartEntry);
        }
示例#15
0
 public void InsertShoppingCartEntry(ShoppingCartEntry shoppingCartEntry)
 {
     context.ShoppingCartEntries.Add(shoppingCartEntry);
 }