You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.1 KiB

  1. using Microsoft.Extensions.Hosting;
  2. using System.Threading;
  3. using System.Threading.Tasks;
  4. using Microsoft.Extensions.Configuration;
  5. using Microsoft.Extensions.DependencyInjection;
  6. using Volo.Abp;
  7. namespace Acme.BookStore.HttpApi.Client.ConsoleTestApp;
  8. public class ConsoleTestAppHostedService : IHostedService
  9. {
  10. private readonly IConfiguration _configuration;
  11. public ConsoleTestAppHostedService(IConfiguration configuration)
  12. {
  13. _configuration = configuration;
  14. }
  15. public async Task StartAsync(CancellationToken cancellationToken)
  16. {
  17. using (var application = await AbpApplicationFactory.CreateAsync<BookStoreConsoleApiClientModule>(options =>
  18. {
  19. options.Services.ReplaceConfiguration(_configuration);
  20. options.UseAutofac();
  21. }))
  22. {
  23. await application.InitializeAsync();
  24. var demo = application.ServiceProvider.GetRequiredService<ClientDemoService>();
  25. await demo.RunAsync();
  26. await application.ShutdownAsync();
  27. }
  28. }
  29. public Task StopAsync(CancellationToken cancellationToken)
  30. {
  31. return Task.CompletedTask;
  32. }
  33. }