diff --git a/EstateManagementUI.BlazorServer/Components/Layout/EntryLayout.razor b/EstateManagementUI.BlazorServer/Components/Layout/EntryLayout.razor new file mode 100644 index 00000000..f7ddda4c --- /dev/null +++ b/EstateManagementUI.BlazorServer/Components/Layout/EntryLayout.razor @@ -0,0 +1,31 @@ +@inherits LayoutComponentBase + + + + + + + + + + + + @Body + + + + + diff --git a/EstateManagementUI.BlazorServer/Components/Pages/EntryScreen.razor b/EstateManagementUI.BlazorServer/Components/Pages/EntryScreen.razor new file mode 100644 index 00000000..de04b567 --- /dev/null +++ b/EstateManagementUI.BlazorServer/Components/Pages/EntryScreen.razor @@ -0,0 +1,143 @@ +@page "/entry" +@using Microsoft.AspNetCore.Components.Authorization +@layout Components.Layout.EntryLayout + +Welcome - Estate Management + +
+ +
+
+ +
+ +
+

Estate Management

+ + +
+ + + +
+ + +
+
+ + + + Manage estate details +
+
+ + + + Manage estate users +
+
+ + + + Operator Management +
+
+ + + + View More + +
+ + +
+

Merchant Management

+ + +
+ + + +
+ + +
+
+ + + + Manage Merchant Details +
+
+ + + + Balance Management +
+
+ + + + Fee Management +
+
+ + + + View More + +
+ + +
+

File Processing

+ + +
+ + + +
+ + +
+
+ + + + Transaction Files +
+
+ + + + Settlement Processing +
+
+ + + + Bulk Processing +
+
+ + + + View More + +
+
+ + +
+

Sign in to access all features

+ + + + + Sign In + +
+
+
+
diff --git a/EstateManagementUI.BlazorServer/Components/Pages/EstateInfo.razor b/EstateManagementUI.BlazorServer/Components/Pages/EstateInfo.razor new file mode 100644 index 00000000..6fe2bc07 --- /dev/null +++ b/EstateManagementUI.BlazorServer/Components/Pages/EstateInfo.razor @@ -0,0 +1,60 @@ +@page "/estate-info" +@layout Components.Layout.EntryLayout + +Estate Management - Estate Management + +
+
+
+
+ +
+
+ + + +
+

Estate Management

+

Comprehensive estate management and configuration

+
+ + +
+
+

Manage Estate Details

+

Configure and update estate information, settings, and preferences. Control all aspects of your estate configuration from a centralized dashboard.

+
+ +
+

Manage Estate Users

+

Add, remove, and manage user access to your estate. Assign roles and permissions to control what each user can view and modify.

+
+ +
+

Operator Management

+

Configure and manage operators within your estate. Set up operator-specific settings and monitor their activities.

+
+
+ + +
+

Sign in to access full estate management features

+ +
+
+
+
+
diff --git a/EstateManagementUI.BlazorServer/Components/Pages/FileInfo.razor b/EstateManagementUI.BlazorServer/Components/Pages/FileInfo.razor new file mode 100644 index 00000000..fc0eda54 --- /dev/null +++ b/EstateManagementUI.BlazorServer/Components/Pages/FileInfo.razor @@ -0,0 +1,60 @@ +@page "/file-info" +@layout Components.Layout.EntryLayout + +File Processing - Estate Management + +
+
+
+
+ +
+
+ + + +
+

File Processing

+

Automated file processing and settlement management

+
+ + +
+
+

Transaction Files

+

Process and manage transaction data files. Upload, validate, and import transaction records with automated error handling and reporting.

+
+ +
+

Settlement Processing

+

Automate settlement file generation and processing. Generate settlement reports and manage the complete settlement workflow.

+
+ +
+

Bulk Processing

+

Handle large-scale file operations efficiently. Process multiple files simultaneously with batch processing capabilities.

+
+
+ + +
+

Sign in to access full file processing features

+ +
+
+
+
+
diff --git a/EstateManagementUI.BlazorServer/Components/Pages/Home.razor b/EstateManagementUI.BlazorServer/Components/Pages/Home.razor index 87c3c69a..f8c98222 100644 --- a/EstateManagementUI.BlazorServer/Components/Pages/Home.razor +++ b/EstateManagementUI.BlazorServer/Components/Pages/Home.razor @@ -1,5 +1,8 @@ @page "/" +@using Microsoft.AspNetCore.Components.Authorization @inject IMediator Mediator +@inject AuthenticationStateProvider AuthenticationStateProvider +@inject NavigationManager NavigationManager Dashboard - Estate Management @@ -250,6 +253,16 @@ @code { protected override async Task OnInitializedAsync() { + var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); + var user = authState.User; + + // Redirect unauthenticated users to entry screen + if (!user.Identity?.IsAuthenticated ?? true) + { + NavigationManager.NavigateTo("/entry", replace: true); + return; + } + await base.OnInitializedAsync(); } } diff --git a/EstateManagementUI.BlazorServer/Components/Pages/MerchantInfo.razor b/EstateManagementUI.BlazorServer/Components/Pages/MerchantInfo.razor new file mode 100644 index 00000000..8fa7ba8f --- /dev/null +++ b/EstateManagementUI.BlazorServer/Components/Pages/MerchantInfo.razor @@ -0,0 +1,60 @@ +@page "/merchant-info" +@layout Components.Layout.EntryLayout + +Merchant Management - Estate Management + +
+
+
+
+ +
+
+ + + +
+

Merchant Management

+

Complete merchant configuration and financial management

+
+ + +
+
+

Manage Merchant Details

+

Configure merchant profiles, contact information, and business details. Keep all merchant data up-to-date and organized in one place.

+
+ +
+

Balance Management

+

Monitor and manage merchant account balances. Track deposits, withdrawals, and maintain accurate financial records for all merchants.

+
+ +
+

Fee Management

+

Configure and apply fee structures for merchant transactions. Set up custom fee schedules and manage payment processing costs.

+
+
+ + +
+

Sign in to access full merchant management features

+ +
+
+
+
+
diff --git a/EstateManagementUI.BlazorServer/Program.cs b/EstateManagementUI.BlazorServer/Program.cs index 6b1539b8..7e44f967 100644 --- a/EstateManagementUI.BlazorServer/Program.cs +++ b/EstateManagementUI.BlazorServer/Program.cs @@ -77,4 +77,16 @@ app.MapRazorComponents() .AddInteractiveServerRenderMode(); +// Add login endpoint to trigger OIDC authentication +app.MapGet("/login", (HttpContext context) => +{ + return Results.Challenge( + properties: new Microsoft.AspNetCore.Authentication.AuthenticationProperties + { + RedirectUri = "/" + }, + authenticationSchemes: new[] { OpenIdConnectDefaults.AuthenticationScheme } + ); +}).AllowAnonymous(); + app.Run();