示例#1
0
 public VippsController(ApplicationDbContext context, ILogger <VippsController> logger, VippsSettings vippsSettings, IVippsApiClient vippsApiClient)
 {
     _context        = context;
     _logger         = logger;
     _vippsSettings  = vippsSettings;
     _vippsApiClient = vippsApiClient;
 }
示例#2
0
 public PaymentController(
     ApplicationDbContext context,
     ILogger <CartController> logger,
     Config.StripeSettings stripeSettings,
     Site siteSetttings,
     IVippsApiClient vippsApiClient,
     VippsSettings vippsSettings)
 {
     _context        = context;
     _logger         = logger;
     _stripeSettings = stripeSettings;
     _site           = siteSetttings;
     _vippsApiClient = vippsApiClient;
     _vippsSettings  = vippsSettings;
 }
示例#3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            var stripeSettings = new Config.StripeSettings();

            Configuration.Bind("Stripe", stripeSettings);
            services.AddSingleton(stripeSettings);

            var vippsSettings = new VippsSettings();

            Configuration.Bind("Vipps", vippsSettings);
            services.AddSingleton(vippsSettings);

            var site = new Site();

            Configuration.Bind("Site", site);
            services.AddSingleton <Site>(site)
            .AddFeatureManagement();


            services.AddHttpClient();

            services.AddSingleton <IVippsApiClient, VippsApiClient>();

            // Configure cookie policy
            services.Configure <CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded    = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            services.AddDbContext <ApplicationDbContext>(options =>
                                                         options.UseSqlite(
                                                             Configuration.GetConnectionString("DefaultConnection")));

            // Add Identity management
            services.AddDefaultIdentity <ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true)
            .AddRoles <IdentityRole>()
            .AddDefaultUI()
            .AddEntityFrameworkStores <ApplicationDbContext>();

            services.Configure <IdentityOptions>(options =>
            {
                // 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.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo {
                    Title = "Sjop API", Version = "v1"
                });
            });

            services.AddAuthorization(options =>
            {
                options.AddPolicy("RequireAdministratorRole",
                                  policy => policy.RequireRole("Admin"));
            });

            services.AddDistributedMemoryCache();
            services.AddSession(options =>
            {
                options.Cookie.Name = ".Kurts.Kake";
                // 30 minutes session
                options.IdleTimeout        = TimeSpan.FromMinutes(30);
                options.Cookie.HttpOnly    = true;
                options.Cookie.IsEssential = true;
            });

            services.AddRazorPages()
            .AddRazorPagesOptions(options =>
            {
                options.Conventions.AuthorizeFolder("/Admin", "RequireAdministratorRole");
            });

            services.AddMvc(option => option.EnableEndpointRouting = false)
            .AddNewtonsoftJson(opt => opt.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore);
        }