Program.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using Microsoft.AspNetCore.Components.Web;
  2. using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
  3. using RackPeek.Domain;
  4. using RackPeek.Domain.Persistence;
  5. using RackPeek.Domain.Persistence.Yaml;
  6. using RackPeek.Domain.Resources;
  7. using RackPeek.Domain.Resources.Hardware;
  8. using RackPeek.Domain.Resources.Services;
  9. using RackPeek.Domain.Resources.SystemResources;
  10. using RackPeek.Yaml;
  11. namespace RackPeek.Web.Viewer;
  12. public class Program
  13. {
  14. public static async Task Main(string[] args)
  15. {
  16. var builder = WebAssemblyHostBuilder.CreateDefault(args);
  17. builder.RootComponents.Add<App>("#app");
  18. builder.RootComponents.Add<HeadOutlet>("head::after");
  19. var services = builder.Services;
  20. builder.Services.AddScoped(sp =>
  21. new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
  22. builder.Services.AddScoped<ITextFileStore, WasmTextFileStore>();
  23. builder.Services.AddScoped<IResourceCollection>(sp =>
  24. new YamlResourceCollection(
  25. "config.yaml",
  26. sp.GetRequiredService<ITextFileStore>()));
  27. services.AddScoped<IHardwareRepository, YamlHardwareRepository>();
  28. services.AddScoped<ISystemRepository, YamlSystemRepository>();
  29. services.AddScoped<IServiceRepository, YamlServiceRepository>();
  30. services.AddScoped<IResourceRepository, YamlResourceRepository>();
  31. builder.Services.AddUseCases();
  32. builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
  33. await builder.Build().RunAsync();
  34. }
  35. }