Ejemplo n.º 1
0
        public static async Task Main(string[] args)
        {
            var builder = WebAssemblyHostBuilder.CreateDefault(args);

            builder.RootComponents.Add <App>("#app");

            builder.Services.AddSingleton(sp => new HttpClient {
                BaseAddress = new Uri(builder.HostEnvironment.BaseAddress)
            });
            builder.Services.AddSingleton <IFileContentResolver>(serviceProvider =>
            {
                var httpClient = serviceProvider.GetRequiredService <HttpClient>();

                return(new HttpFileContentResolver(httpClient, "ttk/084/definitions/"));
            });

            var initializer = new MagusTtkContextServiceInitializer();

            initializer.RegisterServices(builder.Services);

            var host = builder.Build();//.RunAsync();

            //var dataInitializer = host.Services.GetRequiredService<IDataInitializer<MagusTtkContext>>();
            //var ctx = host.Services.GetRequiredService<MagusTtkContext>();
            //await dataInitializer.InitializeData(ctx);

            await host.RunAsync();
        }
Ejemplo n.º 2
0
        public async Task Test_MagusTtkContextServiceInitializer_Initialize()
        {
            var serviceCollection = new ServiceCollection();

            serviceCollection.AddSingleton <IFileContentResolver>(serviceProvider => new LocalFileContentResolver("Definitions/"));

            var initializer = new MagusTtkContextServiceInitializer();

            initializer.RegisterServices(serviceCollection);

            var serviceProvider = serviceCollection.BuildServiceProvider();

            var ctx             = serviceProvider.GetRequiredService <MagusTtkContext>();
            var dataInitializer = serviceProvider.GetRequiredService <IDataInitializer <MagusTtkContext> >();

            await dataInitializer.InitializeData(ctx, CancellationToken.None);

            Assert.AreNotEqual(0, ctx.AbilityDefinitions.Count());
            Assert.AreNotEqual(0, ctx.OriginDefinitions.Count());
            Assert.AreNotEqual(0, ctx.SkillCategoryDefinitions.Count());
            Assert.AreNotEqual(0, ctx.SkillClassDefinitions.Count());
            Assert.AreNotEqual(0, ctx.SkillDefinitions.Count());
            Assert.AreNotEqual(0, ctx.TraitDefinitions.Count());
            Assert.AreNotEqual(0, ctx.WeaponCategoryDefinitions.Count());
            Assert.AreNotEqual(0, ctx.CharacterClassDefinitions.Count());
            Assert.AreNotEqual(0, ctx.WeaponDefinitions.Count());
            Assert.AreNotEqual(0, ctx.RaceDefinitions.Count());

            foreach (var charClassDef in await ctx.CharacterClassDefinitions.All(null, CancellationToken.None))
            {
                System.Diagnostics.Debug.WriteLine($"Skills of character class '{charClassDef.Name ?? charClassDef.Code}' by category:");

                foreach (var group in charClassDef.Skills.GetSkillsByCategory())
                {
                    System.Diagnostics.Debug.WriteLine($"  Skill category '{group.Key.Name ?? group.Key.Code}'");

                    foreach (var skill in group)
                    {
                        System.Diagnostics.Debug.WriteLine($"    - {skill}");
                    }
                }

                System.Diagnostics.Debug.WriteLine("");
            }

            System.Diagnostics.Debug.WriteLine("");

            foreach (var group in (await ctx.SkillDefinitions.All(null, CancellationToken.None)).GroupSkillDefinitionsByCategory())
            {
                System.Diagnostics.Debug.WriteLine($"Skills of category '{group.Key.Name ?? group.Key.Code}':");

                string prevGroupId = null;

                foreach (var skill in group)
                {
                    if ((prevGroupId != null) && (prevGroupId != skill.Group))
                    {
                        System.Diagnostics.Debug.WriteLine("  ");
                    }

                    System.Diagnostics.Debug.WriteLine($"  - {skill}");

                    prevGroupId = skill.Group;
                }

                System.Diagnostics.Debug.WriteLine("");
            }
        }