| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- // namespace SecureSharing;
- //
- // public sealed class Program
- // {
- // public static void Main(string[] args)
- // {
- // CreateHostBuilder(args).Build().Run();
- // }
- //
- // public static IHostBuilder CreateHostBuilder(string[] args)
- // {
- // return Host.CreateDefaultBuilder(args)
- // .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });
- // }
- // }
-
- using Microsoft.AspNetCore.Identity;
- using Quartz;
- using Quartz.Impl;
- using Quartz.Spi;
- using SecureSharing.Business.Infrastructure;
- using SecureSharing.Business.Infrastructure.Extensions;
- using SecureSharing.Business.Infrastructure.Settings;
- using SecureSharing.Business.Interfaces;
- using SecureSharing.Business.Services;
- using SecureSharing.Data.DbContexts;
- using SecureSharing.Infrastructure;
- using SecureSharing.Infrastructure.Middleware;
- using SecureSharing.Quartz;
-
- var builder = WebApplication.CreateBuilder(args);
- var Configuration = builder.Configuration;
- var services = builder.Services;
-
- StartupConfiguration.ConfigureStartupConfig<EmailSettings>(services, Configuration);
- services.AddControllersWithViews();
- services.AddRazorPages();
- StartupExtensions.ConfigureServices(services);
- services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = false)
- .AddDefaultUI()
- .AddRoles<IdentityRole>()
- .AddEntityFrameworkStores<AppDbContext>();
-
- services.AddScoped<IMessageService, MessageService>();
- services.AddScoped<IModelFactory, ModelFactory>();
-
- services.AddAuthentication()
- .AddGoogle(options =>
- {
- options.ClientId = Configuration.GetSection("EmailSettings").GetSection("ClientId").Value;
- options.ClientSecret = Configuration.GetSection("EmailSettings").GetSection("ClientSecret").Value;
- });
-
-
- // Add Quartz services
- services.AddSingleton<IJobFactory, JobFactory>();
- services.AddSingleton<ISchedulerFactory, StdSchedulerFactory>();
-
- // Add our jobs
- services.AddScoped<MessageDeletionJob>();
- services.AddSingleton(new JobMetadata(
- typeof(MessageDeletionJob),
- "0 0 12 * * ?"));
-
-
- services.AddHostedService<JobsService>();
-
- var app = builder.Build();
-
- if (builder.Environment.IsDevelopment())
- {
- app.UseDeveloperExceptionPage();
- }
- else
- {
- app.UseExceptionHandler("/Home/Error");
- // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
- app.UseHsts();
- }
-
- app.UseHttpsRedirection();
- app.UseStaticFiles();
-
- app.UseRouting();
- app.UseAuthentication();
- app.UseAuthorization();
-
- app.UseMiddleware(typeof(ExceptionHandlingMiddleware));
-
- app.UseEndpoints(endpoints =>
- {
- endpoints.MapControllerRoute(
- "default",
- "{controller=Home}/{action=Index}/{id?}");
- endpoints.MapRazorPages();
- });
-
- app.Run();
|