예제 #1
0
        public async Task Seed()
        {
            for (var i = 0; i < 100; i++)
            {
                var displayName = _unparser.Generate("#name.title##name.title##double_digit#");
                var slug        = _slugifier.Slugify(displayName);
                var email       = _unparser.Generate($"{slug}@#noun#.#tld#");

                var org = new Org()
                {
                    Slug        = slug,
                    DisplayName = displayName
                };

                var user = new UserIdentity()
                {
                    UserName  = slug,
                    Email     = email,
                    ShadowOrg = org
                };

                await _userManager.CreateAsync(user, "Password1!");

                var roleAdded = await _userManager.AddToRoleAsync(user, UserRoles.User.ToString());

                if (!roleAdded.Succeeded)
                {
                    var message = $"Couldn't set user role for {slug}: {roleAdded.Errors.ToList()[0].Description}";
                    throw new DbSeedException(message);
                }

                var membership = new OrgMember()
                {
                    User = user,
                    Org  = org,
                    Role = OrgMemberRole.Owner
                };

                _context.Attach(membership);

                _logger.LogInformation($"Created user: `{displayName}` => {slug}");
            }

            await _context.SaveChangesAsync();
        }
예제 #2
0
        public Task Seed()
        {
            var unity2018Min =
                _context.UnityVersions.FindExactVersion((VersionNumber)"2018.1.0").Single();

            var unity2018Max =
                _context.UnityVersions.FindExactVersion((VersionNumber)"2018.4.4").Single();

            for (var i = 0; i < 10; i++)
            {
                var displayName = _unparser.Generate("#display_name.title#");
                var slug        = _slugifier.Slugify(displayName);
                var iconUrl     = _iconRandomizer.GetIconUrl();
                var description = _unparser.Generate("#description#");

                var targetVersion = new TargetVersion()
                {
                    Description           = description,
                    Hash                  = $"0123456789abcdef-{i}",
                    DisplayName           = displayName,
                    IconUrl               = iconUrl,
                    WebsiteUrl            = "",
                    VersionNumber         = "1",
                    DisunityCompatibility = new TargetVersionCompatibility()
                    {
                        MinCompatibleVersion = unity2018Min,
                        MaxCompatibleVersion = unity2018Max
                    }
                };

                var target = new Target()
                {
                    Slug     = slug,
                    Versions = new List <TargetVersion>()
                    {
                        targetVersion
                    }
                };

                _context.Targets.Add(target);
            }


            return(_context.SaveChangesAsync());
        }
예제 #3
0
        public void HeroGrammarWorks()
        {
            var grammar  = Grammar.FromFile("Grammars/hero-grammar.json");
            var unparser = new Unparser(grammar);
            var output   = unparser.Generate(0);
            var test     = "Once upon a time, Chiaki the time captain left his home. Chiaki went home.";

            Assert.Equal(test, output);
        }
예제 #4
0
        private static void Main(string[] args)
        {
            var grammar  = Grammar.FromFile("Tracery.Testing/Grammars/readme-grammar.json");
            var unparser = new Unparser(grammar);

            foreach (var i in new[] { 0, 1, 2, 3, 4 })
            {
                var output = unparser.Generate(i);
                Console.WriteLine($"#{i}: {output}\n");
            }
        }
예제 #5
0
        public async Task Seed()
        {
            var random  = new Random();
            var orgs    = _context.Orgs.ToList();
            var targets = await _context.Targets.ToListAsync();

            var names           = new HashSet <string>();
            var disunityVersion = await _context.DisunityVersions.FirstOrDefaultAsync();

            for (var i = 0; i < 45; i++)
            {
                var org             = orgs.PickRandom();
                var target          = targets.PickRandom();
                var version         = new VersionNumber(random.Next(3), random.Next(3), random.Next(3));
                var attachedVersion = await _versionNumberFactory.FindOrCreateVersionNumber(version);

                var displayName = _unparser.Generate("#display_name.title#");

                while (names.Contains(displayName))
                {
                    displayName = _unparser.Generate("#display_name.title#");
                }

                names.Add(displayName);

                var slug        = _slugifier.Slugify(displayName);
                var description = _unparser.Generate("#description.capitalize#");
                var iconUrl     = _iconRandomizer.GetIconUrl();
                var website     = _unparser.Generate("http://#adjective##noun.s#.#tld#");
                var readme      = displayName + "\n=====\n\n" + _unparser.Generate("#readme#");

                var modVersion = new ModVersion()
                {
                    Description           = description,
                    Readme                = readme,
                    DisplayName           = displayName,
                    FileId                = "",
                    IconUrl               = iconUrl,
                    VersionNumber         = attachedVersion,
                    WebsiteUrl            = website,
                    IsActive              = true,
                    TargetCompatibilities = new List <ModTargetCompatibility>
                    {
                        new ModTargetCompatibility()
                        {
                            Target = target
                        }
                    },
                    DisunityCompatibilities = new List <ModDisunityCompatibility> {
                        new ModDisunityCompatibility()
                        {
                            MinCompatibleVersion = disunityVersion
                        }
                    }
                };

                var mod = new Mod()
                {
                    Owner    = org,
                    Slug     = slug,
                    Versions = new List <ModVersion>()
                    {
                        modVersion
                    },
                };

                _context.Mods.Add(mod);
            }

            await _context.SaveChangesAsync();
        }