Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

Program.cs 2.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using Microsoft.AspNetCore.Authentication.Google;
  2. using Microsoft.AspNetCore.Identity;
  3. using Quartz;
  4. using Quartz.Impl;
  5. using Quartz.Spi;
  6. using SecureSharing.Business.Infrastructure;
  7. using SecureSharing.Business.Infrastructure.Extensions;
  8. using SecureSharing.Business.Infrastructure.Settings;
  9. using SecureSharing.Business.Interfaces;
  10. using SecureSharing.Business.Services;
  11. using SecureSharing.Data.DbContexts;
  12. using SecureSharing.Infrastructure;
  13. using SecureSharing.Infrastructure.Middleware;
  14. using SecureSharing.Quartz;
  15. var builder = WebApplication.CreateBuilder(args);
  16. var configuration = builder.Configuration;
  17. var services = builder.Services;
  18. StartupConfiguration.ConfigureStartupConfig<EmailSettings>(services, configuration);
  19. services.AddControllersWithViews();
  20. services.AddRazorPages();
  21. StartupExtensions.ConfigureServices(services);
  22. services.AddDefaultIdentity<IdentityUser>(options =>
  23. {
  24. options.SignIn.RequireConfirmedAccount = false;
  25. })
  26. .AddDefaultUI()
  27. .AddRoles<IdentityRole>()
  28. .AddEntityFrameworkStores<AppDbContext>();
  29. services.AddScoped<IMessageService, MessageService>();
  30. services.AddScoped<IModelFactory, ModelFactory>();
  31. services.AddAuthentication(o =>
  32. {
  33. o.DefaultScheme = GoogleDefaults.AuthenticationScheme;
  34. })
  35. .AddGoogle(options =>
  36. {
  37. options.ClientId = configuration["EmailSettings:ClientId"];
  38. options.ClientSecret =configuration["EmailSettings:ClientSecret"];
  39. });
  40. // Add Quartz services
  41. services.AddSingleton<IJobFactory, JobFactory>();
  42. services.AddSingleton<ISchedulerFactory, StdSchedulerFactory>();
  43. // Add our jobs
  44. services.AddScoped<MessageDeletionJob>();
  45. services.AddSingleton(new JobMetadata(
  46. typeof(MessageDeletionJob),
  47. "0 0 01 * * ?"));
  48. services.AddHostedService<JobsService>();
  49. var app = builder.Build();
  50. if (builder.Environment.IsDevelopment())
  51. {
  52. app.UseDeveloperExceptionPage();
  53. }
  54. else
  55. {
  56. app.UseExceptionHandler("/Home/Error");
  57. // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
  58. app.UseHsts();
  59. }
  60. app.UseHttpsRedirection();
  61. app.UseStaticFiles();
  62. app.UseRouting();
  63. app.UseAuthentication();
  64. app.UseAuthorization();
  65. app.UseMiddleware(typeof(ExceptionHandlingMiddleware));
  66. app.UseEndpoints(endpoints =>
  67. {
  68. endpoints.MapControllerRoute(
  69. "default",
  70. "{controller=Home}/{action=Index}/{id?}");
  71. endpoints.MapRazorPages();
  72. });
  73. app.Run();