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 })); }
public async Task <IActionResult> View(long id) { CustomerDetailedModel customer = await this.customerRepository.Get(id); return(this.View(customer)); }