public Order GenerateOrder() { // Randomly choose amount of lines int numberOfLines = Rand.Next(minAmountOfLines, maxAmountOfLines); // Choose amount of unique articles List <Article> chosenArticles = ArticleList.OrderBy(x => Rand.Next()).Take(numberOfLines).ToList(); //List<Article> chosenArticles = ArticleList.Where(a => a.AreaCode == AreaCode.Area21 || a.AreaCode == AreaCode.Area25).OrderBy(x => Rand.Next()).Take(numberOfLines).ToList(); // Generate lines based on chosen articles var generatedLines = chosenArticles.Select(GenerateLine).ToList(); // Construct AreasVisited for areas. Order order = new Order(Rand.Next(minOrderNumberId, maxOrderNumberId), TimeKeeper.CurrentDateTime, generatedLines); order.Areas = ConstructAreasVisited(order); return(order); }