Пример #1
0
 public ArtistService(
     ILogger <ArtistService> logger,
     SpotkickDbContext dbContext,
     ISongkickService songkickService)
 {
     _logger          = logger;
     _dbContext       = dbContext;
     _songkickService = songkickService;
 }
Пример #2
0
 public UserService(ILogger <UserService> logger, SpotkickDbContext dbContext, UserManager <User> userManager)
 {
     _logger      = logger;
     _dbContext   = dbContext;
     _userManager = userManager;
 }
Пример #3
0
        // 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();
            }
        }