public ArtistService( ILogger <ArtistService> logger, SpotkickDbContext dbContext, ISongkickService songkickService) { _logger = logger; _dbContext = dbContext; _songkickService = songkickService; }
public UserService(ILogger <UserService> logger, SpotkickDbContext dbContext, UserManager <User> userManager) { _logger = logger; _dbContext = dbContext; _userManager = userManager; }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddMvc(option => option.EnableEndpointRouting = false); services.AddRouting(); services.AddSwaggerGen(); services.AddScoped <IArtistService, ArtistService>(); services.AddScoped <IUserService, UserService>(); services.AddScoped <ISpotifyService, SpotifyService>(); services.AddScoped <ISongkickService, SongkickService>(); services.AddOptions(); services.Configure <SpotifyConfig>(Configuration.GetSection("Spotify")); services.Configure <SongkickConfig>(Configuration.GetSection("Songkick")); services.AddDbContext <SpotkickDbContext>(options => { options.UseSqlServer(Configuration.GetConnectionString("Default")); options.LogTo(_ => Debug.WriteLine(_)); }); services.AddDatabaseDeveloperPageExceptionFilter(); services.AddControllersWithViews(); services.AddRazorPages(); services.AddDefaultIdentity <User>() .AddEntityFrameworkStores <SpotkickDbContext>(); services.Configure <IdentityOptions>(options => { options.SignIn.RequireConfirmedAccount = false; options.SignIn.RequireConfirmedEmail = false; options.SignIn.RequireConfirmedPhoneNumber = false; // Password settings. options.Password.RequireDigit = true; options.Password.RequireLowercase = true; options.Password.RequireNonAlphanumeric = true; options.Password.RequireUppercase = true; options.Password.RequiredLength = 6; options.Password.RequiredUniqueChars = 1; // Lockout settings. options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5); options.Lockout.MaxFailedAccessAttempts = 5; options.Lockout.AllowedForNewUsers = true; // User settings. options.User.AllowedUserNameCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+"; options.User.RequireUniqueEmail = true; }); services.ConfigureApplicationCookie(options => { // Cookie settings options.Cookie.HttpOnly = true; options.ExpireTimeSpan = TimeSpan.FromMinutes(5); options.LoginPath = "/Index"; options.AccessDeniedPath = "/Identity/Account/AccessDenied"; options.SlidingExpiration = true; }); var optionsBuilder = new DbContextOptionsBuilder <SpotkickDbContext>(); optionsBuilder.UseSqlServer(Configuration.GetConnectionString("Default")); using var db = new SpotkickDbContext(optionsBuilder.Options); var migrationsToRun = db.Database.GetPendingMigrations(); if (migrationsToRun.Any()) { db.Database.Migrate(); } }