private IEnumerable <HeadlineInfo> GetHeadlineInfos() { var headlineInfos = new List <HeadlineInfo>(); Author author = CreateAuthor(); DirectoryInfo[] imageDirectories = GetDirectories("img/headlines"); int illustratedHeadlineCount = imageDirectories.Length; int nonIllustratedHeadlineCount = illustratedHeadlineCount / 2; int totalHeadlineCount = illustratedHeadlineCount + nonIllustratedHeadlineCount; IReadOnlyCollection <Tag> tags = CreateTags(count: 2); WeightedLottery <Tag> tagLottery = CreateTagLottery(tags, totalWeight: illustratedHeadlineCount); string[] titles = CreateUniqueStringSet( totalHeadlineCount, () => LoremIpsum.NextHeading(minWordCount: 2, maxWordCount: 8)); for (int headlineIndex = 0; headlineIndex < illustratedHeadlineCount; headlineIndex++) { DirectoryInfo directory = imageDirectories[headlineIndex]; var headlineInfo = new HeadlineInfo { Images = GetHeadlineImages(directory), Tag = tagLottery.Pull(), Title = titles[headlineIndex], Author = author }; headlineInfos.Add(headlineInfo); } tagLottery = CreateTagLottery(tags, totalWeight: nonIllustratedHeadlineCount); for (int headlineIndex = illustratedHeadlineCount; headlineIndex < totalHeadlineCount; headlineIndex++) { var headlineInfo = new HeadlineInfo { Images = new List <HeadlineImage>(), Tag = tagLottery.Pull(), Title = titles[headlineIndex], Author = author }; headlineInfos.Add(headlineInfo); } return(headlineInfos); }
private void SeedCreations() { Lottery <Customer> customerLottery = GetCustomerLottery(); DirectoryInfo[] imageDirectories = GetDirectories("img/creations"); int creationCount = imageDirectories.Length; string[] creationTitles = CreateUniqueStringSet( creationCount, () => LoremIpsum.NextHeading(minWordCount: 2, maxWordCount: 3)); for (int creationIndex = 0; creationIndex < creationCount; creationIndex++) { string title = creationTitles[creationIndex]; Customer customer = customerLottery.Next(); DirectoryInfo imageDirectory = imageDirectories[creationIndex]; List <CreationImage> images = GetCreationImages(imageDirectory); Creation creation = CreateCreation(title, customer, images); _dbContext.Creations.Add(creation); } _dbContext.SaveChanges(); }