Startup.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using Microsoft.AspNetCore.Builder;
  2. using Microsoft.AspNetCore.Hosting;
  3. using Microsoft.AspNetCore.Mvc;
  4. using Microsoft.Extensions.Configuration;
  5. using Microsoft.Extensions.DependencyInjection;
  6. using Result.Hubs;
  7. using Result.Timers;
  8. namespace Result
  9. {
  10. public class Startup
  11. {
  12. public Startup(IConfiguration configuration)
  13. {
  14. Configuration = configuration;
  15. }
  16. public IConfiguration Configuration { get; }
  17. public void ConfigureServices(IServiceCollection services)
  18. {
  19. services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
  20. services.AddSignalR();
  21. services.AddSingleton<PublishResultsTimer>();
  22. }
  23. public void Configure(IApplicationBuilder app, IHostingEnvironment env)
  24. {
  25. if (env.IsDevelopment())
  26. {
  27. app.UseDeveloperExceptionPage();
  28. }
  29. else
  30. {
  31. app.UseExceptionHandler("/Error");
  32. }
  33. app.UseStaticFiles();
  34. app.UseSignalR(routes =>
  35. {
  36. routes.MapHub<ResultsHub>("/resultsHub");
  37. });
  38. app.UseMvc();
  39. var timer = app.ApplicationServices.GetService<PublishResultsTimer>();
  40. timer.Start();
  41. }
  42. }
  43. }