示例#1
0
        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);
        }
示例#2
0
        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();
        }