Program.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using Microsoft.EntityFrameworkCore;
  2. using Microsoft.Extensions.Configuration;
  3. using Microsoft.Extensions.DependencyInjection;
  4. using Microsoft.Extensions.Logging;
  5. using System;
  6. using Worker.Data;
  7. using Worker.Entities;
  8. using Worker.Messaging;
  9. using Worker.Workers;
  10. namespace Worker
  11. {
  12. class Program
  13. {
  14. static void Main(string[] args)
  15. {
  16. var config = new ConfigurationBuilder()
  17. .AddJsonFile("appsettings.json")
  18. .Build();
  19. var loggerFactory = new LoggerFactory()
  20. .AddConsole();
  21. var services = new ServiceCollection()
  22. .AddSingleton(loggerFactory)
  23. .AddLogging()
  24. .AddSingleton<IConfiguration>(config)
  25. .AddTransient<IVoteData, MySqlVoteData>()
  26. .AddTransient<IMessageQueue, MessageQueue>()
  27. .AddSingleton<QueueWorker>()
  28. .AddDbContext<VoteContext>(builder => builder.UseMySQL(config["VoteData:ConnectionString"]));
  29. var provider = services.BuildServiceProvider();
  30. var worker = provider.GetService<QueueWorker>();
  31. worker.Start();
  32. }
  33. }
  34. }