Exemple #1
0
        public async Task <IActionResult> Generate([FromRoute] long id, [FromForm] int count)
        {
            CustomerDetailedModel customer = await this.customerRepository.Get(id);

            IEnumerable <BasketPositionModel> basketPositions = customer.Basket;
            IEnumerable <ProductModel>        products        = await this.productRepository.Get();

            IEnumerable <ProductModel> availableProducts =
                products.Where(product => basketPositions.All(position => position.ProductId != product.Id))
                .ToList();
            int   availableCount = availableProducts.Count() > count ? count : availableProducts.Count();
            Faker faker          = new Faker();
            IEnumerable <ProductModel>             productsForBasket  = faker.PickRandom(availableProducts, availableCount);
            IEnumerable <BasketPositionWriteModel> newBasketPositions = productsForBasket.Select(product => new BasketPositionWriteModel
            {
                CustomerId = id,
                ProductId  = product.Id,
                Price      = product.Price,
                Quantity   = faker.Random.Int(1, product.Count / 2)
            });

            await Task.WhenAll(newBasketPositions.Select(this.basketRepository.Create));

            return(this.RedirectToAction(actionName: "View", controllerName: "Home", routeValues: new { id = id }));
        }
Exemple #2
0
        public async Task <IActionResult> View(long id)
        {
            CustomerDetailedModel customer = await this.customerRepository.Get(id);

            return(this.View(customer));
        }