Coba Corporate Ipsum
Lorem ipsum dolor leverage vertical sit amet. Going forward, we should actualize the plan. Leverage skillsets to achieve the best targets. Actualize the asset and markets. Harness skillsets to achieve maximum goals. Going forward, we should leverage the key action. Actualize vertical markets to achieve optimal targets.
Semoga
namespace BlazorCrudWasm
{
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorComponents()
.AddInteractiveWebAssemblyComponents()
.AddAuthenticationStateSerialization();
builder.Services.AddControllers();
builder.Services.AddCascadingAuthenticationState();
builder.Services.AddScoped<IdentityRedirectManager>();
builder.Services.AddAuthentication(options =>
{
options.DefaultScheme = IdentityConstants.ApplicationScheme;
options.DefaultSignInScheme = IdentityConstants.ExternalScheme;
})
.AddIdentityCookies();
builder.Services.AddAuthorization();
var connectionString = builder.Configuration.GetValue<string>("TheAppSetting:MainDbConnection") ?? throw new InvalidOperationException("TheAppSetting:MainDbConnection Value not found.");
builder.Services.AddDbContextFactory<MainDbContext>(options => options.UseMySQL(connectionString));
//var connectionLoginString = builder.Configuration.GetValue<string>("TheAppSetting:ApplicationDbConnection") ?? throw new InvalidOperationException("TheAppSetting:ApplicationDbConnection Value not found.");
builder.Services.AddDbContext<ApplicationDbContext>(options => options.UseSqlite("Data Source=appdata.db"));
builder.Services.AddDatabaseDeveloperPageExceptionFilter();
builder.Services.AddIdentityCore<ApplicationUser>(options =>
{
options.SignIn.RequireConfirmedAccount = true;
options.Stores.SchemaVersion = IdentitySchemaVersions.Version3;
})
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddSignInManager()
.AddDefaultTokenProviders();
builder.Services.AddSingleton<IEmailSender<ApplicationUser>, IdentityNoOpEmailSender>();
// Mukhaimy Additional services can be registered here
builder.Services.AddHttpClient();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseWebAssemblyDebugging();
app.UseMigrationsEndPoint();
}
else
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseStatusCodePagesWithReExecute("/not-found", createScopeForStatusCodePages: true);
app.UseHttpsRedirection();
app.UseAntiforgery();
app.MapStaticAssets();
app.MapControllers(); // untuk WEB API Controller
app.MapRazorComponents<App>()
.AddInteractiveWebAssemblyRenderMode()
.AddAdditionalAssemblies(typeof(Client._Imports).Assembly);
// Add additional endpoints required by the Identity /Account Razor components.
app.MapAdditionalIdentityEndpoints();
app.Run();
}
}
}
Harness markets to achieve the best market share. Leverage the plan and skillsets. Actualize markets to achieve optimal targets. Going forward, we should harness the key action. Leverage vertical markets to achieve the best market share. Actualize the plan and markets. Going forward, we should harness the asset. Leverage skillsets to achieve optimal targets.
Going forward, we should harness the key action. Leverage the asset and vertical markets. Harness markets to achieve maximum market share. Going forward, we should leverage the plan. Harness vertical markets to achieve the best targets. Going forward, we should actualize the asset. Harness the plan and skillsets. Going forward, we should leverage the asset. Harness markets to achieve optimal goals. Actualize the plan and skillsets. Harness vertical markets to achieve the best market share.