Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
9ad394a
Initial plan
Copilot Jan 8, 2026
6715b92
Implement new dashboard design with KPI cards and comparison metrics
Copilot Jan 8, 2026
f247a37
Address code review feedback - improve error handling and variance ca…
Copilot Jan 8, 2026
0db1958
Remove BusinessLogic DLL dependencies - use BlazorServer models and r…
Copilot Jan 8, 2026
e4015ec
Move date selector beside sales cards, add more date options, fix dat…
Copilot Jan 8, 2026
1045aef
Make sales data vary based on selected comparison date
Copilot Jan 8, 2026
d6b923b
Fix date selector change event to properly trigger data reload
Copilot Jan 8, 2026
dca5b18
Fix compilation error - remove duplicate onchange attribute binding
Copilot Jan 8, 2026
c1a532b
fix
StuartFerguson Jan 8, 2026
de4deb3
Merge branch 'copilot/update-dashboard-cards' of https://github.com/T…
StuartFerguson Jan 8, 2026
28a3985
Use lambda expression to ensure OnComparisonDateChanged event handler…
Copilot Jan 8, 2026
30107a4
workflow change
StuartFerguson Jan 8, 2026
a5ab4f7
Merge branch 'copilot/update-dashboard-cards' of https://github.com/T…
StuartFerguson Jan 8, 2026
769abd3
Use @bind:after with simpler method signature to trigger data reload
Copilot Jan 8, 2026
51ff2ae
Merge branch 'copilot/update-dashboard-cards' of https://github.com/T…
StuartFerguson Jan 8, 2026
d27ae40
Use property setter to trigger data reload on comparison date change
Copilot Jan 8, 2026
5249825
Merge branch 'copilot/update-dashboard-cards' of https://github.com/T…
StuartFerguson Jan 8, 2026
f9714eb
bug fix
StuartFerguson Jan 8, 2026
47f5dbd
Use direct async event handler for dropdown change
Copilot Jan 8, 2026
b06317f
Merge branch 'copilot/update-dashboard-cards' of https://github.com/T…
StuartFerguson Jan 8, 2026
85c444e
:|
StuartFerguson Jan 8, 2026
3db5cf2
Use InputSelect component with @bind-Value:after for reliable change …
Copilot Jan 8, 2026
c4910f8
Add comprehensive console logging to debug dropdown change event
Copilot Jan 8, 2026
52acc71
Add @rendermode InteractiveServer to enable event handlers and JS int…
Copilot Jan 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
328 changes: 164 additions & 164 deletions .github/workflows/pullrequest.yml
Original file line number Diff line number Diff line change
@@ -1,192 +1,192 @@
name: Build and Test Pull Requests
#name: Build and Test Pull Requests

on:
pull_request:
branches:
- main
# on:
# pull_request:
# branches:
# - main

jobs:
unittests:
name: "Build and Unit Test"
# jobs:
# unittests:
# name: "Build and Unit Test"

env:
ASPNETCORE_ENVIRONMENT: "Production"
# env:
# ASPNETCORE_ENVIRONMENT: "Production"

runs-on: ubuntu-latest
# runs-on: ubuntu-latest

steps:
- uses: actions/[email protected]
# steps:
# - uses: actions/[email protected]

- name: Restore Nuget Packages
run: dotnet restore EstateManagementUI.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }}
# - name: Restore Nuget Packages
# run: dotnet restore EstateManagementUI.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }}

- name: Build Code
run: |
dotnet build EstateManagementUI.sln --configuration Release
# - name: Build Code
# run: |
# dotnet build EstateManagementUI.sln --configuration Release

- name: Run Unit Tests
run: |
dotnet test "EstateManagementUI.BusinessLogic.Tests\EstateManagementUI.BusinessLogic.Tests.csproj"
dotnet test "EstateManagementUI.UITests\EstateManagementUI.UITests.csproj"
# - name: Run Unit Tests
# run: |
# dotnet test "EstateManagementUI.BusinessLogic.Tests\EstateManagementUI.BusinessLogic.Tests.csproj"
# dotnet test "EstateManagementUI.UITests\EstateManagementUI.UITests.csproj"

chrometests:
name: "Build and Test UI - Chrome"
env:
ASPNETCORE_ENVIRONMENT: "Production"
NODE_VERSION: '14.x' # set this to the node version to use
# chrometests:
# name: "Build and Test UI - Chrome"
# env:
# ASPNETCORE_ENVIRONMENT: "Production"
# NODE_VERSION: '14.x' # set this to the node version to use

runs-on: ubuntu-latest
# runs-on: ubuntu-latest

steps:
- uses: actions/[email protected]
# steps:
# - uses: actions/[email protected]

- name: Trust Certificate
run: |
sudo apt-get install expect
certPath="$GITHUB_WORKSPACE/Certificates/aspnetapp-root-cert.pfx"
password="password"
# - name: Trust Certificate
# run: |
# sudo apt-get install expect
# certPath="$GITHUB_WORKSPACE/Certificates/aspnetapp-root-cert.pfx"
# password="password"

# Use expect to automate the passphrase input
expect -c "
spawn openssl pkcs12 -in \"$certPath\" -clcerts -nokeys -out certificate.crt -password pass:\"$password\"
expect \"Enter Import Password:\" { send \"$password\n\" }
expect eof
"
# # Use expect to automate the passphrase input
# expect -c "
# spawn openssl pkcs12 -in \"$certPath\" -clcerts -nokeys -out certificate.crt -password pass:\"$password\"
# expect \"Enter Import Password:\" { send \"$password\n\" }
# expect eof
# "

expect -c "
spawn openssl pkcs12 -in \"$certPath\" -nocerts -out private.key -password pass:\"$password\"
expect \"Enter Import Password:\" { send \"$password\n\" }
expect eof
"
# expect -c "
# spawn openssl pkcs12 -in \"$certPath\" -nocerts -out private.key -password pass:\"$password\"
# expect \"Enter Import Password:\" { send \"$password\n\" }
# expect eof
# "

sudo cp certificate.crt /usr/local/share/ca-certificates/aspnetapp-root-cert.crt
sudo update-ca-certificates
# sudo cp certificate.crt /usr/local/share/ca-certificates/aspnetapp-root-cert.crt
# sudo update-ca-certificates

sudo cp private.key /etc/ssl/private/aspnetapp-root-cert.key
sudo chmod 400 /etc/ssl/private/aspnetapp-root-cert.key
# sudo cp private.key /etc/ssl/private/aspnetapp-root-cert.key
# sudo chmod 400 /etc/ssl/private/aspnetapp-root-cert.key

- name: Build Docker Image
run: docker build . --file EstateManagementUI/Dockerfile --tag estatemanagementui:latest
# - name: Build Docker Image
# run: docker build . --file EstateManagementUI/Dockerfile --tag estatemanagementui:latest

- name: Restore Nuget Packages
run: dotnet restore EstateManagementUI.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }}
# - name: Restore Nuget Packages
# run: dotnet restore EstateManagementUI.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }}

- name: Run Integration Tests (Chrome)
env:
Browser: Chrome
IsCI: true
run: dotnet test "EstateManagementUI.IntegrationTests\EstateManagementUI.IntegrationTests.csproj" --filter Category=PRTest
# - name: Run Integration Tests (Chrome)
# env:
# Browser: Chrome
# IsCI: true
# run: dotnet test "EstateManagementUI.IntegrationTests\EstateManagementUI.IntegrationTests.csproj" --filter Category=PRTest

- uses: actions/[email protected]
if: ${{ failure() }}
with:
name: chrometracelogs
path: /home/txnproc/trace/

edgetests:
name: "Build and Test UI - Edge"
env:
ASPNETCORE_ENVIRONMENT: "Production"
NODE_VERSION: '14.x' # set this to the node version to use

runs-on: ubuntu-latest

steps:
- uses: actions/[email protected]

- name: Trust Certificate
run: |
sudo apt-get install expect
certPath="$GITHUB_WORKSPACE/Certificates/aspnetapp-root-cert.pfx"
password="password"

# Use expect to automate the passphrase input
expect -c "
spawn openssl pkcs12 -in \"$certPath\" -clcerts -nokeys -out certificate.crt -password pass:\"$password\"
expect \"Enter Import Password:\" { send \"$password\n\" }
expect eof
"

expect -c "
spawn openssl pkcs12 -in \"$certPath\" -nocerts -out private.key -password pass:\"$password\"
expect \"Enter Import Password:\" { send \"$password\n\" }
expect eof
"

sudo cp certificate.crt /usr/local/share/ca-certificates/aspnetapp-root-cert.crt
sudo update-ca-certificates

sudo cp private.key /etc/ssl/private/aspnetapp-root-cert.key
sudo chmod 400 /etc/ssl/private/aspnetapp-root-cert.key
# - uses: actions/[email protected]
# if: ${{ failure() }}
# with:
# name: chrometracelogs
# path: /home/txnproc/trace/

# edgetests:
# name: "Build and Test UI - Edge"
# env:
# ASPNETCORE_ENVIRONMENT: "Production"
# NODE_VERSION: '14.x' # set this to the node version to use

# runs-on: ubuntu-latest

# steps:
# - uses: actions/[email protected]

# - name: Trust Certificate
# run: |
# sudo apt-get install expect
# certPath="$GITHUB_WORKSPACE/Certificates/aspnetapp-root-cert.pfx"
# password="password"

# # Use expect to automate the passphrase input
# expect -c "
# spawn openssl pkcs12 -in \"$certPath\" -clcerts -nokeys -out certificate.crt -password pass:\"$password\"
# expect \"Enter Import Password:\" { send \"$password\n\" }
# expect eof
# "

# expect -c "
# spawn openssl pkcs12 -in \"$certPath\" -nocerts -out private.key -password pass:\"$password\"
# expect \"Enter Import Password:\" { send \"$password\n\" }
# expect eof
# "

# sudo cp certificate.crt /usr/local/share/ca-certificates/aspnetapp-root-cert.crt
# sudo update-ca-certificates

# sudo cp private.key /etc/ssl/private/aspnetapp-root-cert.key
# sudo chmod 400 /etc/ssl/private/aspnetapp-root-cert.key

- name: Build Docker Image
run: docker build . --file EstateManagementUI/Dockerfile --tag estatemanagementui:latest
# - name: Build Docker Image
# run: docker build . --file EstateManagementUI/Dockerfile --tag estatemanagementui:latest

- name: Restore Nuget Packages
run: dotnet restore EstateManagementUI.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }}
# - name: Restore Nuget Packages
# run: dotnet restore EstateManagementUI.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }}

- name: Run Integration Tests (Edge)
env:
Browser: Edge
IsCI: true
run: dotnet test "EstateManagementUI.IntegrationTests\EstateManagementUI.IntegrationTests.csproj" --filter Category=PRTest
# - name: Run Integration Tests (Edge)
# env:
# Browser: Edge
# IsCI: true
# run: dotnet test "EstateManagementUI.IntegrationTests\EstateManagementUI.IntegrationTests.csproj" --filter Category=PRTest

- uses: actions/[email protected]
if: ${{ failure() }}
with:
name: edgetracelogs
path: /home/txnproc/trace/

fireefoxtests:
name: "Build and Test UI - Firefox"
env:
ASPNETCORE_ENVIRONMENT: "Production"
NODE_VERSION: '14.x' # set this to the node version to use

runs-on: ubuntu-latest

steps:
- uses: actions/[email protected]

- name: Trust Certificate
run: |
sudo apt-get install expect
certPath="$GITHUB_WORKSPACE/Certificates/aspnetapp-root-cert.pfx"
password="password"

# Use expect to automate the passphrase input
expect -c "
spawn openssl pkcs12 -in \"$certPath\" -clcerts -nokeys -out certificate.crt -password pass:\"$password\"
expect \"Enter Import Password:\" { send \"$password\n\" }
expect eof
"

expect -c "
spawn openssl pkcs12 -in \"$certPath\" -nocerts -out private.key -password pass:\"$password\"
expect \"Enter Import Password:\" { send \"$password\n\" }
expect eof
"

sudo cp certificate.crt /usr/local/share/ca-certificates/aspnetapp-root-cert.crt
sudo update-ca-certificates

sudo cp private.key /etc/ssl/private/aspnetapp-root-cert.key
sudo chmod 400 /etc/ssl/private/aspnetapp-root-cert.key
# - uses: actions/[email protected]
# if: ${{ failure() }}
# with:
# name: edgetracelogs
# path: /home/txnproc/trace/

# fireefoxtests:
# name: "Build and Test UI - Firefox"
# env:
# ASPNETCORE_ENVIRONMENT: "Production"
# NODE_VERSION: '14.x' # set this to the node version to use

# runs-on: ubuntu-latest

# steps:
# - uses: actions/[email protected]

# - name: Trust Certificate
# run: |
# sudo apt-get install expect
# certPath="$GITHUB_WORKSPACE/Certificates/aspnetapp-root-cert.pfx"
# password="password"

# # Use expect to automate the passphrase input
# expect -c "
# spawn openssl pkcs12 -in \"$certPath\" -clcerts -nokeys -out certificate.crt -password pass:\"$password\"
# expect \"Enter Import Password:\" { send \"$password\n\" }
# expect eof
# "

# expect -c "
# spawn openssl pkcs12 -in \"$certPath\" -nocerts -out private.key -password pass:\"$password\"
# expect \"Enter Import Password:\" { send \"$password\n\" }
# expect eof
# "

# sudo cp certificate.crt /usr/local/share/ca-certificates/aspnetapp-root-cert.crt
# sudo update-ca-certificates

# sudo cp private.key /etc/ssl/private/aspnetapp-root-cert.key
# sudo chmod 400 /etc/ssl/private/aspnetapp-root-cert.key

- name: Build Docker Image
run: docker build . --file EstateManagementUI/Dockerfile --tag estatemanagementui:latest
# - name: Build Docker Image
# run: docker build . --file EstateManagementUI/Dockerfile --tag estatemanagementui:latest

- name: Restore Nuget Packages
run: dotnet restore EstateManagementUI.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }}
# - name: Restore Nuget Packages
# run: dotnet restore EstateManagementUI.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }}

- name: Run Integration Tests (Firefox)
env:
Browser: Firefox
IsCI: true
run: dotnet test "EstateManagementUI.IntegrationTests\EstateManagementUI.IntegrationTests.csproj" --filter Category=PRTest
# - name: Run Integration Tests (Firefox)
# env:
# Browser: Firefox
# IsCI: true
# run: dotnet test "EstateManagementUI.IntegrationTests\EstateManagementUI.IntegrationTests.csproj" --filter Category=PRTest

- uses: actions/[email protected]
if: ${{ failure() }}
with:
name: firefoxtracelogs
path: /home/txnproc/trace/
# - uses: actions/[email protected]
# if: ${{ failure() }}
# with:
# name: firefoxtracelogs
# path: /home/txnproc/trace/
Loading