-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathApplicationBuilderExtensions.cs
More file actions
29 lines (26 loc) · 1.31 KB
/
ApplicationBuilderExtensions.cs
File metadata and controls
29 lines (26 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using DevExpress.ExpressApp.ApplicationBuilder;
using Microsoft.Extensions.DependencyInjection;
using Security.Extensions;
using Security.Extensions.Services;
using System;
namespace Security.Extensions {
public class SecurityExtensionsOptions {
public CreateSecuritySystemUser CreateSecuritySystemUser { get; set; }
}
}
namespace DevExpress.ExpressApp.Blazor.ApplicationBuilder {
public static class ApplicationBuilderExtensions {
// Adds the SecurityExtensionsModule to the application and configures the required services.
public static IModuleBuilder<IBlazorApplicationBuilder> AddSecurityExtensions(this IModuleBuilder<IBlazorApplicationBuilder> builder,
Action<SecurityExtensionsOptions> configureOptions) {
SecurityExtensionsOptions options = new();
configureOptions.Invoke(options);
ArgumentNullException.ThrowIfNull(options.CreateSecuritySystemUser);
builder.Add<SecurityExtensionsModule>();
builder.Context.Services.Configure<SecurityExtensionsOptions>(o => o.CreateSecuritySystemUser = options.CreateSecuritySystemUser);
builder.Context.Services.AddScoped<RestorePasswordService>();
builder.Context.Services.AddScoped<UserRegistrationService>();
return builder;
}
}
}