From 075afec4afaaaaad26c0a74670c3a2288caa26b0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 5 Mar 2026 08:31:40 +0000 Subject: [PATCH 1/9] Initial plan From 2351462f735b9e4757a3ef8079353e7cf1133c50 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 5 Mar 2026 08:42:22 +0000 Subject: [PATCH 2/9] Revamp HomePage with modern landing page design and navigation commands Co-authored-by: StuartFerguson <16325469+StuartFerguson@users.noreply.github.com> --- .../ViewModelTests/HomePageViewModelTests.cs | 32 +++++ .../UIServices/INavigationService.cs | 5 + .../ViewModels/HomePageViewModel.cs | 12 +- .../Pages/AppHome/HomePage.xaml | 122 ++++++++++++++++-- .../Resources/Styles/LightTheme.xaml | 9 ++ .../UIServices/ShellNavigationService.cs | 16 +++ 6 files changed, 186 insertions(+), 10 deletions(-) diff --git a/TransactionProcessor.Mobile.BusinessLogic.Tests/ViewModelTests/HomePageViewModelTests.cs b/TransactionProcessor.Mobile.BusinessLogic.Tests/ViewModelTests/HomePageViewModelTests.cs index f34dc0541..cfd9fb5e3 100644 --- a/TransactionProcessor.Mobile.BusinessLogic.Tests/ViewModelTests/HomePageViewModelTests.cs +++ b/TransactionProcessor.Mobile.BusinessLogic.Tests/ViewModelTests/HomePageViewModelTests.cs @@ -63,4 +63,36 @@ public void HomePageViewModel_BackButtonCommand_Execute_UserSelectsNotToLogout_L It.IsAny(), It.IsAny()), Times.Once); } + + [Fact] + public void HomePageViewModel_GoToTransactionsCommand_Execute_TransactionsPageDisplayed() + { + this.viewModel.GoToTransactionsCommand.Execute(null); + + this.navigationService.Verify(n => n.GoToTransactions(), Times.Once); + } + + [Fact] + public void HomePageViewModel_GoToReportsCommand_Execute_ReportsPageDisplayed() + { + this.viewModel.GoToReportsCommand.Execute(null); + + this.navigationService.Verify(n => n.GoToReports(), Times.Once); + } + + [Fact] + public void HomePageViewModel_GoToMyAccountCommand_Execute_MyAccountPageDisplayed() + { + this.viewModel.GoToMyAccountCommand.Execute(null); + + this.navigationService.Verify(n => n.GoToMyAccount(), Times.Once); + } + + [Fact] + public void HomePageViewModel_GoToSupportCommand_Execute_SupportPageDisplayed() + { + this.viewModel.GoToSupportCommand.Execute(null); + + this.navigationService.Verify(n => n.GoToSupport(), Times.Once); + } } \ No newline at end of file diff --git a/TransactionProcessor.Mobile.BusinessLogic/UIServices/INavigationService.cs b/TransactionProcessor.Mobile.BusinessLogic/UIServices/INavigationService.cs index d07ae4c08..768cefdd6 100644 --- a/TransactionProcessor.Mobile.BusinessLogic/UIServices/INavigationService.cs +++ b/TransactionProcessor.Mobile.BusinessLogic/UIServices/INavigationService.cs @@ -65,5 +65,10 @@ Task GoToBillPaymentPayBillPage(ProductDetails productDetails, Task GoToReportsSalesAnalysis(); Task GoToReportsBalanceAnalysis(); + Task GoToTransactions(); + Task GoToReports(); + Task GoToMyAccount(); + Task GoToSupport(); + #endregion } \ No newline at end of file diff --git a/TransactionProcessor.Mobile.BusinessLogic/ViewModels/HomePageViewModel.cs b/TransactionProcessor.Mobile.BusinessLogic/ViewModels/HomePageViewModel.cs index 9cc4b25c3..860448b7d 100644 --- a/TransactionProcessor.Mobile.BusinessLogic/ViewModels/HomePageViewModel.cs +++ b/TransactionProcessor.Mobile.BusinessLogic/ViewModels/HomePageViewModel.cs @@ -1,4 +1,6 @@ using System.Diagnostics.CodeAnalysis; +using System.Windows.Input; +using MvvmHelpers.Commands; using TransactionProcessor.Mobile.BusinessLogic.Services; using TransactionProcessor.Mobile.BusinessLogic.UIServices; @@ -13,6 +15,14 @@ public HomePageViewModel(IApplicationCache applicationCache, INavigationService navigationService, INavigationParameterService navigationParameterService) :base(applicationCache,dialogService, navigationService, deviceService,navigationParameterService) { - + this.GoToTransactionsCommand = new AsyncCommand(async () => await this.NavigationService.GoToTransactions()); + this.GoToReportsCommand = new AsyncCommand(async () => await this.NavigationService.GoToReports()); + this.GoToMyAccountCommand = new AsyncCommand(async () => await this.NavigationService.GoToMyAccount()); + this.GoToSupportCommand = new AsyncCommand(async () => await this.NavigationService.GoToSupport()); } + + public ICommand GoToTransactionsCommand { get; } + public ICommand GoToReportsCommand { get; } + public ICommand GoToMyAccountCommand { get; } + public ICommand GoToSupportCommand { get; } } \ No newline at end of file diff --git a/TransactionProcessor.Mobile/Pages/AppHome/HomePage.xaml b/TransactionProcessor.Mobile/Pages/AppHome/HomePage.xaml index ad32197be..827320a0c 100644 --- a/TransactionProcessor.Mobile/Pages/AppHome/HomePage.xaml +++ b/TransactionProcessor.Mobile/Pages/AppHome/HomePage.xaml @@ -4,13 +4,117 @@ x:Class="TransactionProcessor.Mobile.Pages.AppHome.HomePage" xmlns:controls="using:TransactionProcessor.Mobile.Controls" xmlns:common="using:TransactionProcessor.Mobile.Pages.Common" - Shell.NavBarIsVisible="False"> - - - -