From 029a90e69dd4549cd7bbd92b1f70d76994ef0689 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Thu, 9 Jul 2026 22:13:59 +0200 Subject: [PATCH] Implemented Profile --- .../Components/Layout/MainLayout.razor | 2 +- Tmt.SaqaTravel/Components/Pages/Profile.razor | 271 +++++++++++++++++- Tmt.SaqaTravel/wwwroot/app.min.css | 5 + 3 files changed, 276 insertions(+), 2 deletions(-) diff --git a/Tmt.SaqaTravel/Components/Layout/MainLayout.razor b/Tmt.SaqaTravel/Components/Layout/MainLayout.razor index fc39fe6..9f22db3 100644 --- a/Tmt.SaqaTravel/Components/Layout/MainLayout.razor +++ b/Tmt.SaqaTravel/Components/Layout/MainLayout.razor @@ -51,7 +51,7 @@ JD diff --git a/Tmt.SaqaTravel/Components/Pages/Profile.razor b/Tmt.SaqaTravel/Components/Pages/Profile.razor index 2da812a..70c1be6 100644 --- a/Tmt.SaqaTravel/Components/Pages/Profile.razor +++ b/Tmt.SaqaTravel/Components/Pages/Profile.razor @@ -1,7 +1,276 @@ @page "/profile" +@rendermode InteractiveServer +@using System +@using System.Collections.Generic +@using System.Linq +@using System.Threading.Tasks -

Profile

+VIP Traveller Profile - J. Mokoena + +
+ +
+
+

Traveller Profile

+

Manage corporate travel credentials, frequent flyer integrations, active visas and personal preferences

+
+
+ + + VIP Executive Account Verified (Grade 1) + +
+
+ + @* Alert / Feedback Notification *@ + @if (!string.IsNullOrEmpty(_alertFeedback)) + { +
+ + + + @_alertFeedback +
+ } + +
+ + +
+ +
+
+ +
+ JM +
+ +

Jabulani Mokoena

+

Executive Chief Director

+

SAQA Corporate Strategy & Finance

+ +
+
+ Email + j.mokoena@saqa.co.za +
+
+ Mobile + +27 82 555 0192 +
+
+ Base Office + Pretoria (HQ) +
+
+ Cost Centre + CC-FIN-701 +
+
+ + +
+ + +
+

YTD Corporate Travel Stats

+
+
+ Flights + 14 +
+
+ Hotel Nights + 12 +
+
+ Carbon Footprint + 4.8 Tonnes +
+
+ Billed to Lodge + R 245,390 +
+
+
+
+ + +
+ + +
+
+
+

Traveller Preferences

+

Automated booking defaults locked into the GDS profile parser

+
+ Active +
+ +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+ +
+
+ + +
+
+
+

Passport & Active Visas

+

Scanned credentials checked against immigration guidelines during visa-booking workflow

+
+ + 馃攽 Encypted Vault + +
+ +
+ +
+
+ South African Passport + Doc No: AA9923812 路 Expires: 12 Jan 2031 +
+ Primary +
+ + +
+
+ United Kingdom Standard Visitor Visa + Ref: UKV-882190B 路 Multi-Entry 路 Expires: 05 Jun 2028 +
+ Valid +
+ + +
+
+ United States Business Visa (B1/B2) + Ref: USV-0992381 路 10-Year Multi 路 Expires: 19 Oct 2031 +
+ Valid +
+
+
+ + +
+
+
+

Frequent Flyer Integrations

+

Direct GDS link to auto-claim points on personal frequent flyer portfolios

+
+ +
+ +
+ @foreach (var program in _loyaltyPrograms) + { +
+ @program.Airline + @program.Level Tier + No: @program.Number +
+ } +
+
+ +
+ +
+
@code { + private string _alertFeedback = string.Empty; + // Traveller Preference Bindings + private string _seatPreference = "Window"; + private string _dietaryPreference = "Vegetarian"; + private string _bedPreference = "King"; + private string _carPreference = "SUV"; + + // Loyalty Program Class + public class LoyaltyProgram + { + public string Airline { get; set; } = string.Empty; + public string Level { get; set; } = string.Empty; + public string Number { get; set; } = string.Empty; + } + + private List _loyaltyPrograms = new() + { + new() { Airline = "South African Airways", Level = "SAA Voyager Gold", Number = "VS-992381" }, + new() { Airline = "British Airways", Level = "Executive Club Silver", Number = "BA-882019" }, + new() { Airline = "Emirates Airlines", Level = "Skywards Silver", Number = "EK-110294" } + }; + + private void TriggerProfileSync() + { + _alertFeedback = "Securing OAuth handshake... Traveller biographical credentials, frequent flyer balances and visa records successfully synchronized with the central SAQA HR Portal!"; + StateHasChanged(); + } + + private void SavePreferences() + { + _alertFeedback = $"Traveller preferences successfully updated in the GDS master profile! Future bookings will lock in seating: {_seatPreference}, dietary: {_dietaryPreference}, room: {_bedPreference} bed, and car preference."; + StateHasChanged(); + } + + private void LinkNewProgram() + { + _loyaltyPrograms.Add(new LoyaltyProgram + { + Airline = "Qatar Airways", + Level = "Privilege Club Gold", + Number = "QR-" + new Random().Next(100000, 999999) + }); + _alertFeedback = "New frequent flyer integration added successfully!"; + StateHasChanged(); + } } diff --git a/Tmt.SaqaTravel/wwwroot/app.min.css b/Tmt.SaqaTravel/wwwroot/app.min.css index 6a2413e..652c4be 100644 --- a/Tmt.SaqaTravel/wwwroot/app.min.css +++ b/Tmt.SaqaTravel/wwwroot/app.min.css @@ -3018,6 +3018,11 @@ grid-template-columns: 1fr 1fr 1fr 1fr auto; } } + .lg\:grid-cols-\[1fr_2fr\] { + @media (width >= 64rem) { + grid-template-columns: 1fr 2fr; + } + } .lg\:grid-cols-\[2fr_1fr\] { @media (width >= 64rem) { grid-template-columns: 2fr 1fr;