Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
79 changes: 50 additions & 29 deletions .github/workflows/pullrequest.yml
Original file line number Diff line number Diff line change
@@ -1,191 +1,212 @@
#name: Build and Test Pull Requests
name: Build and Test Pull Requests

on:
pull_request:
branches:
- main

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

env:
ASPNETCORE_ENVIRONMENT: "Production"

runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.0.x'

- name: Restore NuGet packages
run: dotnet restore EstateManagementUI.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }}

- name: Build solution
run: dotnet build EstateManagementUI.sln --configuration Release --no-restore

- name: Run Blazor Server unit tests
run: dotnet test EstateManagementUI.BlazorServer.Tests/EstateManagementUI.BlazorServer.Tests.csproj --configuration Release --no-build --verbosity normal --logger "trx;LogFileName=blazor-test-results.trx"

- name: Publish test results
uses: dorny/test-reporter@v1
if: always()
with:
name: Unit Test Results
path: '**/TestResults/*.trx'
reporter: dotnet-trx
fail-on-error: true

- name: Upload test results
uses: actions/upload-artifact@v4
if: always()
with:
name: test-results
path: '**/TestResults/*.trx'
retention-days: 30

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

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

# env:
# ASPNETCORE_ENVIRONMENT: "Production"

# runs-on: ubuntu-latest

# steps:
# - uses: actions/checkout@v2.3.4

# - 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: 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

# runs-on: ubuntu-latest

# steps:
# - uses: actions/checkout@v2.3.4

# - 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: 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

# - uses: actions/upload-artifact@v4.4.0
# 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/checkout@v2.3.4

# - 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: 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

# - uses: actions/upload-artifact@v4.4.0
# 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/checkout@v2.3.4

# - 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: 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

# - uses: actions/upload-artifact@v4.4.0
# if: ${{ failure() }}
# with:
# name: firefoxtracelogs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@ public void EstateIndex_RendersCorrectly()

_mockMediator.Setup(x => x.Send(It.IsAny<GetEstateQuery>(), default))
.ReturnsAsync(Result<EstateModel>.Success(estate));
_mockMediator.Setup(x => x.Send(It.IsAny<GetMerchantsQuery>(), default))
.ReturnsAsync(Result<List<MerchantModel>>.Success(new List<MerchantModel>()));
_mockMediator.Setup(x => x.Send(It.IsAny<GetOperatorsQuery>(), default))
.ReturnsAsync(Result<List<OperatorModel>>.Success(new List<OperatorModel>()));
_mockMediator.Setup(x => x.Send(It.IsAny<GetContractsQuery>(), default))
.ReturnsAsync(Result<List<ContractModel>>.Success(new List<ContractModel>()));

// Act
var cut = RenderComponent<EstateIndex>();
Expand Down Expand Up @@ -74,6 +80,12 @@ public void EstateIndex_HasCorrectPageTitle()
// Arrange
_mockMediator.Setup(x => x.Send(It.IsAny<GetEstateQuery>(), default))
.ReturnsAsync(Result<EstateModel>.Success(new EstateModel { EstateId = Guid.NewGuid() }));
_mockMediator.Setup(x => x.Send(It.IsAny<GetMerchantsQuery>(), default))
.ReturnsAsync(Result<List<MerchantModel>>.Success(new List<MerchantModel>()));
_mockMediator.Setup(x => x.Send(It.IsAny<GetOperatorsQuery>(), default))
.ReturnsAsync(Result<List<OperatorModel>>.Success(new List<OperatorModel>()));
_mockMediator.Setup(x => x.Send(It.IsAny<GetContractsQuery>(), default))
.ReturnsAsync(Result<List<ContractModel>>.Success(new List<ContractModel>()));

// Act
var cut = RenderComponent<EstateIndex>();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,55 @@
using Bunit;
using EstateManagementUI.BlazorServer.Components.Pages;
using EstateManagementUI.BlazorServer.Permissions;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.Extensions.DependencyInjection;
using Moq;
using Shouldly;
using System.Security.Claims;

namespace EstateManagementUI.BlazorServer.Tests.Pages;

public class PermissionsDebugPageTests : TestContext
{
private readonly Mock<IPermissionService> _mockPermissionService;
private readonly Mock<AuthenticationStateProvider> _mockAuthStateProvider;
private readonly Mock<IPermissionStore> _mockPermissionStore;

public PermissionsDebugPageTests()
{
_mockPermissionService = new Mock<IPermissionService>();
_mockAuthStateProvider = new Mock<AuthenticationStateProvider>();
_mockPermissionStore = new Mock<IPermissionStore>();

// Setup default mock behaviors
var identity = new ClaimsIdentity(new[]
{
new Claim(ClaimTypes.Name, "TestUser"),
new Claim(ClaimTypes.Email, "test@example.com")
}, "TestAuth");
var principal = new ClaimsPrincipal(identity);
var authState = new AuthenticationState(principal);

_mockAuthStateProvider.Setup(x => x.GetAuthenticationStateAsync())
.ReturnsAsync(authState);

_mockPermissionService.Setup(x => x.GetUserRoleAsync())
.ReturnsAsync("TestRole");

_mockPermissionService.Setup(x => x.GetUserPermissionsAsync())
.ReturnsAsync(new List<Permission>());

_mockPermissionService.Setup(x => x.HasPermissionAsync(It.IsAny<PermissionSection>(), It.IsAny<PermissionFunction>()))
.ReturnsAsync(false);

_mockPermissionStore.Setup(x => x.GetAllRolesAsync())
.ReturnsAsync(new List<Role>());

Services.AddSingleton(_mockPermissionService.Object);
Services.AddSingleton(_mockAuthStateProvider.Object);
Services.AddSingleton(_mockPermissionStore.Object);
}

[Fact]
public void PermissionsDebug_RendersCorrectly()
{
Expand Down
106 changes: 1 addition & 105 deletions EstateManagementUI.sln
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,10 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 18
VisualStudioVersion = 18.1.11312.151
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EstateManagementUI", "EstateManagementUI\EstateManagementUI.csproj", "{2EA6492F-70A7-41EB-B816-A9854C0DB47B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{E7671C23-F30C-471A-A9EF-AC85DC607B55}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{05420FAB-1C50-4AAD-9E7C-2A86184019B7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EstateManagementUI.BusinessLogic.Tests", "EstateManagementUI.BusinessLogic.Tests\EstateManagementUI.BusinessLogic.Tests.csproj", "{95D6BC50-E55F-4D9B-B96D-D97EE5456BE1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EstateManagementUI.Testing", "EstateManagementUI.Testing\EstateManagementUI.Testing.csproj", "{6F4573B4-A5CC-48B6-A96A-E692C612275D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EstateManagementUI.IntegrationTests", "EstateManagementUI.IntegrationTests\EstateManagementUI.IntegrationTests.csproj", "{4E83EBD1-AC2B-43DA-9EDD-420A213FF635}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EstateManagementUI.BusinessLogic", "EstateManagementUI.BusinessLogic\EstateManagementUI.BusinessLogic.csproj", "{661A3E05-A174-4930-8171-5EDC19D1D267}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EstateManagementUI.ViewModels", "EstateManagementUI.ViewModels\EstateManagementUI.ViewModels.csproj", "{245519C4-A8C6-40A4-AE09-9431DC1845EF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EstateManagementUI.UITests", "EstateManagementUI.UITests\EstateManagementUI.UITests.csproj", "{CC0964BD-CDF0-4976-AF28-B28800FDC286}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EstateManagementUI.BlazorServer", "EstateManagementUI.BlazorServer\EstateManagementUI.BlazorServer.csproj", "{C52FE3F3-E999-4A12-A20B-0D5C6DA34AA9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EstateManagementUI.BlazorServer.Tests", "EstateManagementUI.BlazorServer.Tests\EstateManagementUI.BlazorServer.Tests.csproj", "{55431CBE-C879-47B9-9607-A5822DE9B856}"
Expand All @@ -35,90 +21,6 @@ Global
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2EA6492F-70A7-41EB-B816-A9854C0DB47B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2EA6492F-70A7-41EB-B816-A9854C0DB47B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2EA6492F-70A7-41EB-B816-A9854C0DB47B}.Debug|x64.ActiveCfg = Debug|Any CPU
{2EA6492F-70A7-41EB-B816-A9854C0DB47B}.Debug|x64.Build.0 = Debug|Any CPU
{2EA6492F-70A7-41EB-B816-A9854C0DB47B}.Debug|x86.ActiveCfg = Debug|Any CPU
{2EA6492F-70A7-41EB-B816-A9854C0DB47B}.Debug|x86.Build.0 = Debug|Any CPU
{2EA6492F-70A7-41EB-B816-A9854C0DB47B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2EA6492F-70A7-41EB-B816-A9854C0DB47B}.Release|Any CPU.Build.0 = Release|Any CPU
{2EA6492F-70A7-41EB-B816-A9854C0DB47B}.Release|x64.ActiveCfg = Release|Any CPU
{2EA6492F-70A7-41EB-B816-A9854C0DB47B}.Release|x64.Build.0 = Release|Any CPU
{2EA6492F-70A7-41EB-B816-A9854C0DB47B}.Release|x86.ActiveCfg = Release|Any CPU
{2EA6492F-70A7-41EB-B816-A9854C0DB47B}.Release|x86.Build.0 = Release|Any CPU
{95D6BC50-E55F-4D9B-B96D-D97EE5456BE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{95D6BC50-E55F-4D9B-B96D-D97EE5456BE1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{95D6BC50-E55F-4D9B-B96D-D97EE5456BE1}.Debug|x64.ActiveCfg = Debug|Any CPU
{95D6BC50-E55F-4D9B-B96D-D97EE5456BE1}.Debug|x64.Build.0 = Debug|Any CPU
{95D6BC50-E55F-4D9B-B96D-D97EE5456BE1}.Debug|x86.ActiveCfg = Debug|Any CPU
{95D6BC50-E55F-4D9B-B96D-D97EE5456BE1}.Debug|x86.Build.0 = Debug|Any CPU
{95D6BC50-E55F-4D9B-B96D-D97EE5456BE1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{95D6BC50-E55F-4D9B-B96D-D97EE5456BE1}.Release|Any CPU.Build.0 = Release|Any CPU
{95D6BC50-E55F-4D9B-B96D-D97EE5456BE1}.Release|x64.ActiveCfg = Release|Any CPU
{95D6BC50-E55F-4D9B-B96D-D97EE5456BE1}.Release|x64.Build.0 = Release|Any CPU
{95D6BC50-E55F-4D9B-B96D-D97EE5456BE1}.Release|x86.ActiveCfg = Release|Any CPU
{95D6BC50-E55F-4D9B-B96D-D97EE5456BE1}.Release|x86.Build.0 = Release|Any CPU
{6F4573B4-A5CC-48B6-A96A-E692C612275D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6F4573B4-A5CC-48B6-A96A-E692C612275D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6F4573B4-A5CC-48B6-A96A-E692C612275D}.Debug|x64.ActiveCfg = Debug|Any CPU
{6F4573B4-A5CC-48B6-A96A-E692C612275D}.Debug|x64.Build.0 = Debug|Any CPU
{6F4573B4-A5CC-48B6-A96A-E692C612275D}.Debug|x86.ActiveCfg = Debug|Any CPU
{6F4573B4-A5CC-48B6-A96A-E692C612275D}.Debug|x86.Build.0 = Debug|Any CPU
{6F4573B4-A5CC-48B6-A96A-E692C612275D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6F4573B4-A5CC-48B6-A96A-E692C612275D}.Release|Any CPU.Build.0 = Release|Any CPU
{6F4573B4-A5CC-48B6-A96A-E692C612275D}.Release|x64.ActiveCfg = Release|Any CPU
{6F4573B4-A5CC-48B6-A96A-E692C612275D}.Release|x64.Build.0 = Release|Any CPU
{6F4573B4-A5CC-48B6-A96A-E692C612275D}.Release|x86.ActiveCfg = Release|Any CPU
{6F4573B4-A5CC-48B6-A96A-E692C612275D}.Release|x86.Build.0 = Release|Any CPU
{4E83EBD1-AC2B-43DA-9EDD-420A213FF635}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4E83EBD1-AC2B-43DA-9EDD-420A213FF635}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4E83EBD1-AC2B-43DA-9EDD-420A213FF635}.Debug|x64.ActiveCfg = Debug|Any CPU
{4E83EBD1-AC2B-43DA-9EDD-420A213FF635}.Debug|x64.Build.0 = Debug|Any CPU
{4E83EBD1-AC2B-43DA-9EDD-420A213FF635}.Debug|x86.ActiveCfg = Debug|Any CPU
{4E83EBD1-AC2B-43DA-9EDD-420A213FF635}.Debug|x86.Build.0 = Debug|Any CPU
{4E83EBD1-AC2B-43DA-9EDD-420A213FF635}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4E83EBD1-AC2B-43DA-9EDD-420A213FF635}.Release|Any CPU.Build.0 = Release|Any CPU
{4E83EBD1-AC2B-43DA-9EDD-420A213FF635}.Release|x64.ActiveCfg = Release|Any CPU
{4E83EBD1-AC2B-43DA-9EDD-420A213FF635}.Release|x64.Build.0 = Release|Any CPU
{4E83EBD1-AC2B-43DA-9EDD-420A213FF635}.Release|x86.ActiveCfg = Release|Any CPU
{4E83EBD1-AC2B-43DA-9EDD-420A213FF635}.Release|x86.Build.0 = Release|Any CPU
{661A3E05-A174-4930-8171-5EDC19D1D267}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{661A3E05-A174-4930-8171-5EDC19D1D267}.Debug|Any CPU.Build.0 = Debug|Any CPU
{661A3E05-A174-4930-8171-5EDC19D1D267}.Debug|x64.ActiveCfg = Debug|Any CPU
{661A3E05-A174-4930-8171-5EDC19D1D267}.Debug|x64.Build.0 = Debug|Any CPU
{661A3E05-A174-4930-8171-5EDC19D1D267}.Debug|x86.ActiveCfg = Debug|Any CPU
{661A3E05-A174-4930-8171-5EDC19D1D267}.Debug|x86.Build.0 = Debug|Any CPU
{661A3E05-A174-4930-8171-5EDC19D1D267}.Release|Any CPU.ActiveCfg = Release|Any CPU
{661A3E05-A174-4930-8171-5EDC19D1D267}.Release|Any CPU.Build.0 = Release|Any CPU
{661A3E05-A174-4930-8171-5EDC19D1D267}.Release|x64.ActiveCfg = Release|Any CPU
{661A3E05-A174-4930-8171-5EDC19D1D267}.Release|x64.Build.0 = Release|Any CPU
{661A3E05-A174-4930-8171-5EDC19D1D267}.Release|x86.ActiveCfg = Release|Any CPU
{661A3E05-A174-4930-8171-5EDC19D1D267}.Release|x86.Build.0 = Release|Any CPU
{245519C4-A8C6-40A4-AE09-9431DC1845EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{245519C4-A8C6-40A4-AE09-9431DC1845EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{245519C4-A8C6-40A4-AE09-9431DC1845EF}.Debug|x64.ActiveCfg = Debug|Any CPU
{245519C4-A8C6-40A4-AE09-9431DC1845EF}.Debug|x64.Build.0 = Debug|Any CPU
{245519C4-A8C6-40A4-AE09-9431DC1845EF}.Debug|x86.ActiveCfg = Debug|Any CPU
{245519C4-A8C6-40A4-AE09-9431DC1845EF}.Debug|x86.Build.0 = Debug|Any CPU
{245519C4-A8C6-40A4-AE09-9431DC1845EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{245519C4-A8C6-40A4-AE09-9431DC1845EF}.Release|Any CPU.Build.0 = Release|Any CPU
{245519C4-A8C6-40A4-AE09-9431DC1845EF}.Release|x64.ActiveCfg = Release|Any CPU
{245519C4-A8C6-40A4-AE09-9431DC1845EF}.Release|x64.Build.0 = Release|Any CPU
{245519C4-A8C6-40A4-AE09-9431DC1845EF}.Release|x86.ActiveCfg = Release|Any CPU
{245519C4-A8C6-40A4-AE09-9431DC1845EF}.Release|x86.Build.0 = Release|Any CPU
{CC0964BD-CDF0-4976-AF28-B28800FDC286}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CC0964BD-CDF0-4976-AF28-B28800FDC286}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CC0964BD-CDF0-4976-AF28-B28800FDC286}.Debug|x64.ActiveCfg = Debug|Any CPU
{CC0964BD-CDF0-4976-AF28-B28800FDC286}.Debug|x64.Build.0 = Debug|Any CPU
{CC0964BD-CDF0-4976-AF28-B28800FDC286}.Debug|x86.ActiveCfg = Debug|Any CPU
{CC0964BD-CDF0-4976-AF28-B28800FDC286}.Debug|x86.Build.0 = Debug|Any CPU
{CC0964BD-CDF0-4976-AF28-B28800FDC286}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CC0964BD-CDF0-4976-AF28-B28800FDC286}.Release|Any CPU.Build.0 = Release|Any CPU
{CC0964BD-CDF0-4976-AF28-B28800FDC286}.Release|x64.ActiveCfg = Release|Any CPU
{CC0964BD-CDF0-4976-AF28-B28800FDC286}.Release|x64.Build.0 = Release|Any CPU
{CC0964BD-CDF0-4976-AF28-B28800FDC286}.Release|x86.ActiveCfg = Release|Any CPU
{CC0964BD-CDF0-4976-AF28-B28800FDC286}.Release|x86.Build.0 = Release|Any CPU
{C52FE3F3-E999-4A12-A20B-0D5C6DA34AA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C52FE3F3-E999-4A12-A20B-0D5C6DA34AA9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C52FE3F3-E999-4A12-A20B-0D5C6DA34AA9}.Debug|x64.ActiveCfg = Debug|Any CPU
Expand Down Expand Up @@ -148,13 +50,7 @@ Global
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{2EA6492F-70A7-41EB-B816-A9854C0DB47B} = {05420FAB-1C50-4AAD-9E7C-2A86184019B7}
{95D6BC50-E55F-4D9B-B96D-D97EE5456BE1} = {E7671C23-F30C-471A-A9EF-AC85DC607B55}
{6F4573B4-A5CC-48B6-A96A-E692C612275D} = {E7671C23-F30C-471A-A9EF-AC85DC607B55}
{4E83EBD1-AC2B-43DA-9EDD-420A213FF635} = {E7671C23-F30C-471A-A9EF-AC85DC607B55}
{661A3E05-A174-4930-8171-5EDC19D1D267} = {05420FAB-1C50-4AAD-9E7C-2A86184019B7}
{245519C4-A8C6-40A4-AE09-9431DC1845EF} = {05420FAB-1C50-4AAD-9E7C-2A86184019B7}
{CC0964BD-CDF0-4976-AF28-B28800FDC286} = {E7671C23-F30C-471A-A9EF-AC85DC607B55}
{C52FE3F3-E999-4A12-A20B-0D5C6DA34AA9} = {05420FAB-1C50-4AAD-9E7C-2A86184019B7}
{55431CBE-C879-47B9-9607-A5822DE9B856} = {E7671C23-F30C-471A-A9EF-AC85DC607B55}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
Expand Down
Loading