diff --git a/EstateManagementUI.BlazorServer.Tests/Pages/Estate/EstateIndexPageTests.cs b/EstateManagementUI.BlazorServer.Tests/Pages/Estate/EstateIndexPageTests.cs index 70364aae..b6e77541 100644 --- a/EstateManagementUI.BlazorServer.Tests/Pages/Estate/EstateIndexPageTests.cs +++ b/EstateManagementUI.BlazorServer.Tests/Pages/Estate/EstateIndexPageTests.cs @@ -35,7 +35,7 @@ public void EstateIndex_RendersCorrectly() .ReturnsAsync(Result.Success(new List())); _mockMediator.Setup(x => x.Send(It.IsAny(), default)) .ReturnsAsync(Result.Success(new List())); - _mockMediator.Setup(x => x.Send(It.IsAny(), default)) + _mockMediator.Setup(x => x.Send(It.IsAny(), default)) .ReturnsAsync(Result.Success(new List())); // Act @@ -65,7 +65,7 @@ public void EstateIndex_DisplaysEstateDetails() .ReturnsAsync(Result.Success(new List())); _mockMediator.Setup(x => x.Send(It.IsAny(), default)) .ReturnsAsync(Result.Success(new List())); - _mockMediator.Setup(x => x.Send(It.IsAny(), default)) + _mockMediator.Setup(x => x.Send(It.IsAny(), default)) .ReturnsAsync(Result.Success(new List())); // Act @@ -87,7 +87,7 @@ public void EstateIndex_HasCorrectPageTitle() .ReturnsAsync(Result.Success(new List())); _mockMediator.Setup(x => x.Send(It.IsAny(), default)) .ReturnsAsync(Result.Success(new List())); - _mockMediator.Setup(x => x.Send(It.IsAny(), default)) + _mockMediator.Setup(x => x.Send(It.IsAny(), default)) .ReturnsAsync(Result.Success(new List())); // Act diff --git a/EstateManagementUI.BlazorServer.Tests/Pages/Operators/OperatorsIndexPageTests.cs b/EstateManagementUI.BlazorServer.Tests/Pages/Operators/OperatorsIndexPageTests.cs index d891e2be..47ed591a 100644 --- a/EstateManagementUI.BlazorServer.Tests/Pages/Operators/OperatorsIndexPageTests.cs +++ b/EstateManagementUI.BlazorServer.Tests/Pages/Operators/OperatorsIndexPageTests.cs @@ -31,7 +31,7 @@ public void OperatorsIndex_RendersCorrectly() } }; - _mockMediator.Setup(x => x.Send(It.IsAny(), default)) + _mockMediator.Setup(x => x.Send(It.IsAny(), default)) .ReturnsAsync(Result.Success(operators)); // Act @@ -46,7 +46,7 @@ public void OperatorsIndex_WithNoOperators_ShowsEmptyState() { // Arrange var emptyList = new List(); - _mockMediator.Setup(x => x.Send(It.IsAny(), default)) + _mockMediator.Setup(x => x.Send(It.IsAny(), default)) .ReturnsAsync(Result.Success(emptyList)); // Act @@ -79,7 +79,7 @@ public void OperatorsIndex_WithOperators_DisplaysOperatorList() } }; - _mockMediator.Setup(x => x.Send(It.IsAny(), default)) + _mockMediator.Setup(x => x.Send(It.IsAny(), default)) .ReturnsAsync(Result.Success(operators)); // Act @@ -106,7 +106,7 @@ public void OperatorsIndex_DisplaysCustomNumberRequirements() } }; - _mockMediator.Setup(x => x.Send(It.IsAny(), default)) + _mockMediator.Setup(x => x.Send(It.IsAny(), default)) .ReturnsAsync(Result.Success(operators)); // Act @@ -122,7 +122,7 @@ public void OperatorsIndex_DisplaysCustomNumberRequirements() public void OperatorsIndex_HasCorrectPageTitle() { // Arrange - _mockMediator.Setup(x => x.Send(It.IsAny(), default)) + _mockMediator.Setup(x => x.Send(It.IsAny(), default)) .ReturnsAsync(Result.Success(new List())); // Act diff --git a/EstateManagementUI.BlazorServer.Tests/Pages/Operators/OperatorsViewPageTests.cs b/EstateManagementUI.BlazorServer.Tests/Pages/Operators/OperatorsViewPageTests.cs index 3d98e035..7a65d7b0 100644 --- a/EstateManagementUI.BlazorServer.Tests/Pages/Operators/OperatorsViewPageTests.cs +++ b/EstateManagementUI.BlazorServer.Tests/Pages/Operators/OperatorsViewPageTests.cs @@ -26,7 +26,7 @@ public void OperatorsView_RendersCorrectly() Name = "Test Operator" }; - _mockMediator.Setup(x => x.Send(It.IsAny(), default)) + _mockMediator.Setup(x => x.Send(It.IsAny(), default)) .ReturnsAsync(Result.Success(operatorModel)); // Act @@ -48,7 +48,7 @@ public void OperatorsView_DisplaysOperatorName() Name = "Test Operator" }; - _mockMediator.Setup(x => x.Send(It.IsAny(), default)) + _mockMediator.Setup(x => x.Send(It.IsAny(), default)) .ReturnsAsync(Result.Success(operatorModel)); // Act @@ -65,7 +65,7 @@ public void OperatorsView_HasCorrectPageTitle() { // Arrange var operatorId = Guid.NewGuid(); - _mockMediator.Setup(x => x.Send(It.IsAny(), default)) + _mockMediator.Setup(x => x.Send(It.IsAny(), default)) .ReturnsAsync(Result.Success(new OperatorModel { OperatorId = operatorId })); // Act diff --git a/EstateManagementUI.BlazorServer/Components/Pages/Contracts/New.razor b/EstateManagementUI.BlazorServer/Components/Pages/Contracts/New.razor index 5c9d18b5..7a503805 100644 --- a/EstateManagementUI.BlazorServer/Components/Pages/Contracts/New.razor +++ b/EstateManagementUI.BlazorServer/Components/Pages/Contracts/New.razor @@ -136,7 +136,7 @@ else try { isLoadingOperators = true; - var result = await Mediator.Send(new Queries.GetOperatorsQuery(CorrelationIdHelper.New(), Guid.Parse("11111111-1111-1111-1111-111111111111"))); + var result = await Mediator.Send(new OperatorQueries.GetOperatorsQuery(CorrelationIdHelper.New(), Guid.Parse("11111111-1111-1111-1111-111111111111"))); if (result.IsSuccess) { operators = ModelFactory.ConvertFrom(result.Data); diff --git a/EstateManagementUI.BlazorServer/Components/Pages/Estate/Index.razor.cs b/EstateManagementUI.BlazorServer/Components/Pages/Estate/Index.razor.cs index df235207..a80ae129 100644 --- a/EstateManagementUI.BlazorServer/Components/Pages/Estate/Index.razor.cs +++ b/EstateManagementUI.BlazorServer/Components/Pages/Estate/Index.razor.cs @@ -54,7 +54,7 @@ private async Task LoadEstateData(CorrelationId correlationId, Guid esta Task>> merchantTask = Mediator.Send(new MerchantQueries.GetRecentMerchantsQuery(correlationId, estateId)); Task>> contractsTask = Mediator.Send(new ContractQueries.GetRecentContractsQuery(correlationId, estateId)); Task>> assignedOperatorsTask = Mediator.Send(new EstateQueries.GetAssignedOperatorsQuery(correlationId, estateId)); - Task>> allOperatorsTask= Mediator.Send(new Queries.GetOperatorsQuery(correlationId, estateId)); + Task>> allOperatorsTask= Mediator.Send(new OperatorQueries.GetOperatorsQuery(correlationId, estateId)); await Task.WhenAll(estateTask, merchantTask, contractsTask, assignedOperatorsTask, allOperatorsTask); diff --git a/EstateManagementUI.BlazorServer/Components/Pages/Merchants/Edit.razor.cs b/EstateManagementUI.BlazorServer/Components/Pages/Merchants/Edit.razor.cs index 5dbd7ed6..9201966e 100644 --- a/EstateManagementUI.BlazorServer/Components/Pages/Merchants/Edit.razor.cs +++ b/EstateManagementUI.BlazorServer/Components/Pages/Merchants/Edit.razor.cs @@ -150,7 +150,7 @@ private async Task LoadOperators() { var correlationId = new CorrelationId(Guid.NewGuid()); var estateId = await this.GetEstateId(); - var result = await Mediator.Send(new Queries.GetOperatorsQuery(correlationId, estateId)); + var result = await Mediator.Send(new OperatorQueries.GetOperatorsQuery(correlationId, estateId)); if (result.IsFailed) { return ResultHelpers.CreateFailure(result); diff --git a/EstateManagementUI.BlazorServer/Components/Pages/Operators/Edit.razor b/EstateManagementUI.BlazorServer/Components/Pages/Operators/Edit.razor index ff50e915..41a4ceaf 100644 --- a/EstateManagementUI.BlazorServer/Components/Pages/Operators/Edit.razor +++ b/EstateManagementUI.BlazorServer/Components/Pages/Operators/Edit.razor @@ -161,7 +161,7 @@ else var estateId = Guid.Parse("11111111-1111-1111-1111-111111111111"); var accessToken = "stubbed-token"; - var result = await Mediator.Send(new Queries.GetOperatorQuery(correlationId, accessToken, estateId, OperatorId)); + var result = await Mediator.Send(new OperatorQueries.GetOperatorQuery(correlationId, accessToken, estateId, OperatorId)); if (result.IsSuccess && result.Data != null) { diff --git a/EstateManagementUI.BlazorServer/Components/Pages/Operators/Index.razor b/EstateManagementUI.BlazorServer/Components/Pages/Operators/Index.razor index 911a045c..acef46bc 100644 --- a/EstateManagementUI.BlazorServer/Components/Pages/Operators/Index.razor +++ b/EstateManagementUI.BlazorServer/Components/Pages/Operators/Index.razor @@ -113,28 +113,5 @@ @code { - private bool isLoading = true; - private List operators; - - protected override async Task OnInitializedAsync() - { - try - { - await RequirePermission(PermissionSection.Operator, PermissionFunction.List); - - var correlationId = new CorrelationId(Guid.NewGuid()); - var estateId = Guid.Parse("11111111-1111-1111-1111-111111111111"); - var accessToken = "stubbed-token"; - - var result = await Mediator.Send(new Queries.GetOperatorsQuery(correlationId, estateId)); - if (result.IsSuccess) - { - operators = ModelFactory.ConvertFrom(result.Data); - } - } - finally - { - isLoading = false; - } - } + } diff --git a/EstateManagementUI.BlazorServer/Components/Pages/Operators/Index.razor.cs b/EstateManagementUI.BlazorServer/Components/Pages/Operators/Index.razor.cs new file mode 100644 index 00000000..62ab5a7f --- /dev/null +++ b/EstateManagementUI.BlazorServer/Components/Pages/Operators/Index.razor.cs @@ -0,0 +1,40 @@ +using EstateManagementUI.BlazorServer.Factories; +using EstateManagementUI.BlazorServer.Models; +using EstateManagementUI.BlazorServer.Permissions; +using EstateManagementUI.BusinessLogic.Requests; + +namespace EstateManagementUI.BlazorServer.Components.Pages.Operators +{ + public partial class Index + { + private bool isLoading = true; + private List operators; + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + if (!firstRender) + { + await base.OnAfterRenderAsync(firstRender); + return; + } + + try { + await RequirePermission(PermissionSection.Operator, PermissionFunction.List); + + var correlationId = new CorrelationId(Guid.NewGuid()); + var estateId = await this.GetEstateId(); + + var result = await Mediator.Send(new OperatorQueries.GetOperatorsQuery(correlationId, estateId)); + if (result.IsSuccess) + { + operators = ModelFactory.ConvertFrom(result.Data); + } + } + finally + { + isLoading = false; + this.StateHasChanged(); + } + } + } +} diff --git a/EstateManagementUI.BlazorServer/Components/Pages/Operators/View.razor b/EstateManagementUI.BlazorServer/Components/Pages/Operators/View.razor index 93b9b923..9626c730 100644 --- a/EstateManagementUI.BlazorServer/Components/Pages/Operators/View.razor +++ b/EstateManagementUI.BlazorServer/Components/Pages/Operators/View.razor @@ -98,7 +98,7 @@ var estateId = Guid.Parse("11111111-1111-1111-1111-111111111111"); var accessToken = "stubbed-token"; - var result = await Mediator.Send(new Queries.GetOperatorQuery(correlationId, accessToken, estateId, OperatorId)); + var result = await Mediator.Send(new OperatorQueries.GetOperatorQuery(correlationId, accessToken, estateId, OperatorId)); if (result.IsSuccess && result.Data != null) { diff --git a/EstateManagementUI.BlazorServer/Components/Pages/Reporting/TransactionDetail.razor b/EstateManagementUI.BlazorServer/Components/Pages/Reporting/TransactionDetail.razor index 0ac38e92..0e6a4296 100644 --- a/EstateManagementUI.BlazorServer/Components/Pages/Reporting/TransactionDetail.razor +++ b/EstateManagementUI.BlazorServer/Components/Pages/Reporting/TransactionDetail.razor @@ -433,7 +433,7 @@ // Load filter options var merchantsTask = Mediator.Send(new MerchantQueries.GetMerchantsForDropDownQuery(correlationId, estateId)); - var operatorsTask = Mediator.Send(new Queries.GetOperatorsQuery(correlationId, estateId)); + var operatorsTask = Mediator.Send(new OperatorQueries.GetOperatorsQuery(correlationId, estateId)); var contractsTask = Mediator.Send(new ContractQueries.GetContractsQuery(correlationId, accessToken, estateId)); await Task.WhenAll(merchantsTask, operatorsTask, contractsTask); diff --git a/EstateManagementUI.BlazorServer/Components/Pages/Reporting/TransactionSummaryMerchant.razor b/EstateManagementUI.BlazorServer/Components/Pages/Reporting/TransactionSummaryMerchant.razor index 92e91523..f8eadb07 100644 --- a/EstateManagementUI.BlazorServer/Components/Pages/Reporting/TransactionSummaryMerchant.razor +++ b/EstateManagementUI.BlazorServer/Components/Pages/Reporting/TransactionSummaryMerchant.razor @@ -277,7 +277,7 @@ // Load filter options var merchantsTask = Mediator.Send(new MerchantQueries.GetMerchantsForDropDownQuery(correlationId, estateId)); - var operatorsTask = Mediator.Send(new Queries.GetOperatorsQuery(correlationId, estateId)); + var operatorsTask = Mediator.Send(new OperatorQueries.GetOperatorsQuery(correlationId, estateId)); await Task.WhenAll(merchantsTask, operatorsTask); diff --git a/EstateManagementUI.BlazorServer/Components/Pages/Reporting/TransactionSummaryOperator.razor b/EstateManagementUI.BlazorServer/Components/Pages/Reporting/TransactionSummaryOperator.razor index fd812927..2e4e2363 100644 --- a/EstateManagementUI.BlazorServer/Components/Pages/Reporting/TransactionSummaryOperator.razor +++ b/EstateManagementUI.BlazorServer/Components/Pages/Reporting/TransactionSummaryOperator.razor @@ -285,7 +285,7 @@ // Load filter options var merchantsTask = Mediator.Send(new MerchantQueries.GetMerchantsForDropDownQuery(correlationId, estateId)); - var operatorsTask = Mediator.Send(new Queries.GetOperatorsQuery(correlationId, estateId)); + var operatorsTask = Mediator.Send(new OperatorQueries.GetOperatorsQuery(correlationId, estateId)); await Task.WhenAll(merchantsTask, operatorsTask); diff --git a/EstateManagmentUI.BusinessLogic/Client/OperatorMethods.cs b/EstateManagmentUI.BusinessLogic/Client/OperatorMethods.cs index 15e5df94..885040fb 100644 --- a/EstateManagmentUI.BusinessLogic/Client/OperatorMethods.cs +++ b/EstateManagmentUI.BusinessLogic/Client/OperatorMethods.cs @@ -10,12 +10,12 @@ namespace EstateManagementUI.BusinessLogic.Client { public partial interface IApiClient { - Task>> GetOperators(Queries.GetOperatorsQuery request, + Task>> GetOperators(OperatorQueries.GetOperatorsQuery request, CancellationToken cancellationToken); } public partial class ApiClient : IApiClient { - public async Task>> GetOperators(Queries.GetOperatorsQuery request, + public async Task>> GetOperators(OperatorQueries.GetOperatorsQuery request, CancellationToken cancellationToken) { // Get a token here var token = await this.GetToken(cancellationToken); diff --git a/EstateManagmentUI.BusinessLogic/RequestHandlers/DateRequestHandler.cs b/EstateManagmentUI.BusinessLogic/RequestHandlers/DateRequestHandler.cs index e5197a7c..168f0462 100644 --- a/EstateManagmentUI.BusinessLogic/RequestHandlers/DateRequestHandler.cs +++ b/EstateManagmentUI.BusinessLogic/RequestHandlers/DateRequestHandler.cs @@ -222,8 +222,8 @@ public async Task>> Handle(ContractQueries.Ge } } - public class OperatorRequestHandler : IRequestHandler>>, - IRequestHandler>, + public class OperatorRequestHandler : IRequestHandler>>, + IRequestHandler>, IRequestHandler, IRequestHandler { @@ -234,11 +234,11 @@ public OperatorRequestHandler(IApiClient apiClient) this.ApiClient = apiClient; } - public async Task>> Handle(Queries.GetOperatorsQuery request, + public async Task>> Handle(OperatorQueries.GetOperatorsQuery request, CancellationToken cancellationToken) { return await this.ApiClient.GetOperators(request, cancellationToken); } - public async Task> Handle(Queries.GetOperatorQuery request, + public async Task> Handle(OperatorQueries.GetOperatorQuery request, CancellationToken cancellationToken) { return Result.Success(StubTestData.GetMockOperator()); } diff --git a/EstateManagmentUI.BusinessLogic/Requests/Requests.cs b/EstateManagmentUI.BusinessLogic/Requests/Requests.cs index 5af1092a..006bcd8a 100644 --- a/EstateManagmentUI.BusinessLogic/Requests/Requests.cs +++ b/EstateManagmentUI.BusinessLogic/Requests/Requests.cs @@ -34,13 +34,13 @@ public record GetContractsQuery(CorrelationId CorrelationId, string AccessToken, public record GetContractQuery(CorrelationId CorrelationId, string AccessToken, Guid EstateId, Guid ContractId) : IRequest>; } -public static class Queries -{ - +public class OperatorQueries { public record GetOperatorsQuery(CorrelationId CorrelationId, Guid EstateId) : IRequest>>; - public record GetOperatorQuery(CorrelationId CorrelationId, string AccessToken, Guid EstateId, Guid OperatorId) : IRequest>; - +} + +public static class Queries +{ public record GetFileImportLogsListQuery(CorrelationId CorrelationId, string AccessToken, Guid EstateId, Guid MerchantId, DateTime StartDate, DateTime EndDate) : IRequest>>; public record GetFileImportLogQuery(CorrelationId CorrelationId, string AccessToken, Guid EstateId, Guid MerchantId, Guid FileImportLogId) diff --git a/EstateManagmentUI.BusinessLogic/Services/TestMediatorService.cs b/EstateManagmentUI.BusinessLogic/Services/TestMediatorService.cs index 05fdb1ec..dc8cb7ee 100644 --- a/EstateManagmentUI.BusinessLogic/Services/TestMediatorService.cs +++ b/EstateManagmentUI.BusinessLogic/Services/TestMediatorService.cs @@ -32,8 +32,8 @@ public Task Send(IRequest request, Cancellation MerchantQueries.GetRecentMerchantsQuery query => Task.FromResult((TResponse)(object)Result.Success(this._testDataStore.GetRecentMerchants(query.EstateId))), // Operator Queries - Queries.GetOperatorsQuery query => Task.FromResult((TResponse)(object)Result.Success(this._testDataStore.GetOperators(query.EstateId))), - Queries.GetOperatorQuery query => Task.FromResult((TResponse)(object)this.GetOperatorResult(query.EstateId, query.OperatorId)), + OperatorQueries.GetOperatorsQuery query => Task.FromResult((TResponse)(object)Result.Success(this._testDataStore.GetOperators(query.EstateId))), + OperatorQueries.GetOperatorQuery query => Task.FromResult((TResponse)(object)this.GetOperatorResult(query.EstateId, query.OperatorId)), // Contract Queries ContractQueries.GetContractsQuery query => Task.FromResult((TResponse)(object)Result.Success(this._testDataStore.GetContracts(query.EstateId))),