static async Task Main(string[] args) { IConfiguration config = new ConfigurationBuilder() .AddJsonFile("appsettings.json", true, true) .Build(); config = DependencyBootstrapper.AddSecrets(config); var services = new ServiceCollection(); DependencyBootstrapper.ConfigureDependencies(services, config); var provider = services.BuildServiceProvider(); var context = provider.GetService <MusicLibraryContext>(); var libMan = provider.GetService <LibraryService>(); var saveWorkflow = new SaveNewFilesToDatabaseWorkflow(libMan); foreach (var path in args) { await saveWorkflow.Execute(path); } var uploadWorkflow = new UploadFilesToAzureWorkflow(context, provider.GetService <IDriveServiceFactory>(), libMan); await uploadWorkflow.Execute(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0); var appSettingsSection = Configuration.GetSection("AppSettings"); // services.Configure<AppSettings>(appSettingsSection); var appSettings = appSettingsSection.Get <AppSettings>(); var key = Encoding.ASCII.GetBytes(appSettings.TokenSecret); services.AddSingleton <IJwtTokenProviderService, GoogleTokenProviderService>(provider => new GoogleTokenProviderService( appSettings.TokenSecret, appSettings.GoogleClientId, appSettings.GoogleClientSecret, provider.GetService <MusicLibraryContext>())); DependencyBootstrapper.ConfigureDependencies(services, Configuration); services.AddCors(b => b.AddPolicy("enable-all", builder => builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader())); services.AddAuthentication(x => { x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }); services.AddAuthentication().AddJwtBearer(o => { o.RequireHttpsMetadata = false; o.SaveToken = true; o.TokenValidationParameters = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(key), ValidateIssuer = false, ValidateAudience = false }; }); }