From 8506026599d6195ac957d8d8f40be44e87c3dc47 Mon Sep 17 00:00:00 2001 From: "jozsef.b@aycode.com" <9Rj@D}fVwBaN> Date: Fri, 31 May 2024 15:31:04 +0200 Subject: [PATCH] TiamErrorBoundaryComponent fixes; ManageCompanies improvements, fixes; MyCompany improvements, fixes; etc... --- .../Pages/User/MyServiceProviders.razor | 45 +---- .../SysAdmins/ManageServiceProviders.razor | 176 ++++++------------ .../User/SysAdmins/ManageTransfers.razor | 16 +- .../Shared/Components/Grids/CompanyGrid.cs | 17 +- .../Shared/Components/Grids/TiamGrid.cs | 12 +- .../Shared/Components/Grids/TransferGrid.cs | 17 +- .../TiamErrorBoundaryComponent.razor | 14 +- 7 files changed, 122 insertions(+), 175 deletions(-) diff --git a/TIAMSharedUI/Pages/User/MyServiceProviders.razor b/TIAMSharedUI/Pages/User/MyServiceProviders.razor index 65ec8a5b..801c282c 100644 --- a/TIAMSharedUI/Pages/User/MyServiceProviders.razor +++ b/TIAMSharedUI/Pages/User/MyServiceProviders.razor @@ -10,11 +10,13 @@ @using AyCode.Services.Loggers @using TIAMWebApp.Shared.Application.Services @using AyCode.Core.Helpers +@using TIAMSharedUI.Shared.Components.Grids @layout AdminLayout @inject IEnumerable LogWriters @inject IStringLocalizer localizer @inject ISessionService SessionService @inject IServiceProviderDataService ServiceProviderDataService +@inject AdminSignalRClient AdminSignalRClient;

Properties

@@ -62,14 +64,14 @@ *@ - @@ -83,7 +85,7 @@ - + @@ -107,8 +109,7 @@ @code { private LoggerClient _logger; - IGrid Grid { get; set; } - Company[]? ServiceProviderData { get; set; } + private CompanyGrid _gridCompany; public ServiceProviderWizardModel myModel = new ServiceProviderWizardModel(); @@ -145,7 +146,7 @@ protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) - await Grid.StartEditRowAsync(0); + await _gridCompany.StartEditRowAsync(0); } void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e) @@ -158,34 +159,6 @@ } } - async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e) - { - if (e.IsNew) - //add new orderData to orderData array - _logger.Info("New orderData added"); - //await NwindDataService.InsertEmployeeAsync((EditableEmployee)e.EditModel); - else - _logger.Info("orderData updated"); - //modify orderData where orderData.Name == e.EditModel.Name - - //await NwindDataService.UpdateEmployeeAsync((EditableEmployee)e.DataItem, (EditableEmployee)e.EditModel); - - await UpdateDataAsync(); - } - async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e) - { - //await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem); - //remove orderData from orderData array - _logger.Info("orderData deleted"); - //await UpdateDataAsync(); - } - async Task UpdateDataAsync() - { - //DataSource = await NwindDataService.GetEmployeesEditableAsync(); - //refresh grid - _logger.Info("orderData grid refreshed"); - } - protected override Task OnInitializedAsync() { _logger = new LoggerClient(LogWriters.ToArray()); diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor index 0c71e4a9..c28d8c4e 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor @@ -20,6 +20,7 @@ @using MessagePack.Resolvers @using AyCode.Core.Extensions; @using AyCode.Utils.Extensions +@using TIAMSharedUI.Shared.Components.Grids @layout AdminLayout @inject IEnumerable LogWriters @inject IStringLocalizer localizer @@ -35,11 +36,9 @@

Manage transfers here!

- + - + @* *@
- + @@ -113,8 +112,7 @@ if (keyField.IsNullOrEmpty()) { - string buttonText = "Set owner"; - + } else { @@ -122,17 +120,17 @@ } } - + @* - - *@ + + *@ @* - + *@ @@ -154,7 +152,7 @@ - +
@@ -174,28 +172,32 @@ //public Transfer myModel = new Transfer(); - public List ServiceProviderDataList { get; set; } + //public List ServiceProviderDataList { get; set; } + + private bool _sendMailPopupVisible; + private bool _setOwnerPopupVisible; + + private CompanyGrid _gridCompany; + private bool _autoCollapseDetailRow; - bool SendMailPopupVisible { get; set; } - bool SetOwnerPopupVisible { get; set; } public List IgnoreList = [ "ReceiverEmailAddress", - "ReceiverFullName", - "ReceiverId", - "SenderEmailAddress", - "SenderFullName", - "SenderId", - "ContextId", + "ReceiverFullName", + "ReceiverId", + "SenderEmailAddress", + "SenderFullName", + "SenderId", + "ContextId", ]; private MessageWizardModel _messageWizardModel = new(); private string Email { get; set; } = "email@email.com"; string EmailMask { get; set; } = @"(\w|[.-])+@(\w|-)+\.(\w|-){2,4}"; + DateTime StartDate { get; set; } = DateTime.Today; DxSchedulerDataStorage _dataStorage = new(); - - + void SendMail(Company item) { _logger.Info($"Sending mail to {item.OwnerId}, {item.Id}"); @@ -204,14 +206,14 @@ _messageWizardModel.SenderEmailAddress = ""; _messageWizardModel.ReceiverEmailAddress = ""; _messageWizardModel.ReceiverFullName = ""; - SendMailPopupVisible = true; + _sendMailPopupVisible = true; } void SetOwnerPopup(Company item) { _logger.Info($"Setting owner of {item.OwnerId}, {item.Id}"); - SetOwnerPopupVisible = true; + _setOwnerPopupVisible = true; } async Task SetOwner(Guid CompanyId) @@ -222,23 +224,22 @@ //overwrite ServiceProvider ownerid var target = await serviceProviderDataService.GetServiceProviderByIdAsync(CompanyId); if (target == null) - { + { return null; } else { target.OwnerId = userModelDto.Id; - var result = await serviceProviderDataService.UpdateServiceProviderAsync(target); + var result = await serviceProviderDataService.UpdateServiceProviderAsync(target); + return result; - } - } void CancelCreateClick() { - SendMailPopupVisible = false; + _sendMailPopupVisible = false; } void EulaPopupClosed() { @@ -300,102 +301,35 @@ companyEditModel.OwnerId = Guid.Empty; companyEditModel.ProfileId = Guid.NewGuid(); } - - } - - async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e) - { - Company resultCompany = null; - if (e.IsNew) - { - _logger.Info("New company adding"); - resultCompany = await serviceProviderDataService.CreateServiceProviderAsync((Company)e.EditModel); - } - else - { - _logger.Info("company updating at id " + ((Company)e.EditModel).Id); - - resultCompany = await serviceProviderDataService.UpdateServiceProviderAsync((Company)e.EditModel); - - } - - if (resultCompany!=null) - { - //TODO: ne a teljes grid-et refresh-eljük, elég lenne csak az adott sort! - J. - await UpdateDataAsync(); - } - } - - async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e) - { - var company = (Company)e.DataItem; - //await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem); - //remove orderData from orderData array - _logger.Info($"companyData deleting; companyId: {company.Id}"); - - var response = await AdminSignalRClient.PostDataAsync(SignalRTags.RemoveCompanyAsync, company); - - //resultCompany = await serviceProviderDataService.DeleteServiceProviderAsync(company.Id); - //await UpdateDataAsync(); - } - - async Task UpdateDataAsync() - { - ServiceProviderDataList = await serviceProviderDataService.GetServiceProvidersAsync(); - //StateHasChanged(); - _logger.Info("orderData grid refreshed"); } protected override async Task OnInitializedAsync() { _logger = new LoggerClient(LogWriters.ToArray()); - await UpdateDataAsync(); - - //var transfers = await devAdminSignalClient.GetAllAsync>(SignalRTags.GetTransfersAsync); - //InitializeDataSources(transfers ?? []); - - - //InitializeDataSources(await transferDataService.GetTransfersAsync()); - - base.OnInitializedAsync(); + await base.OnInitializedAsync(); } - - - - void ColumnChooserButton_Click() { - Grid2.ShowColumnChooser(); + _gridCompany.ShowColumnChooser(); } - IGrid Grid2 { get; set; } - object MasterGridData { get; set; } - bool AutoCollapseDetailRow { get; set; } - protected override void OnAfterRender(bool firstRender) { if (firstRender) { - Grid2.ExpandDetailRow(0); + _gridCompany.ExpandDetailRow(0); } } void AutoCollapseDetailRow_Changed(bool newValue) { - AutoCollapseDetailRow = newValue; + _autoCollapseDetailRow = newValue; if (!newValue) return; - Grid2.BeginUpdate(); - Grid2.CollapseAllDetailRows(); - Grid2.ExpandDetailRow(0); - Grid2.EndUpdate(); + _gridCompany.BeginUpdate(); + _gridCompany.CollapseAllDetailRows(); + _gridCompany.ExpandDetailRow(0); + _gridCompany.EndUpdate(); } -} - - - - - - - } \ No newline at end of file +} \ No newline at end of file diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor index 25eb9128..7b0992f9 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor @@ -72,7 +72,7 @@ Click="ColumnChooserButton_Click" /> - IgnoreList = [ @@ -425,7 +425,7 @@ void ColumnChooserButton_Click() { - _transferGrid.ShowColumnChooser(); + _gridTransfer.ShowColumnChooser(); } @@ -433,7 +433,7 @@ { if (firstRender) { - _transferGrid.ExpandDetailRow(0); + _gridTransfer.ExpandDetailRow(0); } } @@ -442,10 +442,10 @@ _autoCollapseDetailRow = newValue; if (!newValue) return; - _transferGrid.BeginUpdate(); - _transferGrid.CollapseAllDetailRows(); - _transferGrid.ExpandDetailRow(0); - _transferGrid.EndUpdate(); + _gridTransfer.BeginUpdate(); + _gridTransfer.CollapseAllDetailRows(); + _gridTransfer.ExpandDetailRow(0); + _gridTransfer.EndUpdate(); } } \ No newline at end of file diff --git a/TIAMSharedUI/Shared/Components/Grids/CompanyGrid.cs b/TIAMSharedUI/Shared/Components/Grids/CompanyGrid.cs index 82a44694..6ec27080 100644 --- a/TIAMSharedUI/Shared/Components/Grids/CompanyGrid.cs +++ b/TIAMSharedUI/Shared/Components/Grids/CompanyGrid.cs @@ -1,4 +1,5 @@ -using TIAM.Entities.ServiceProviders; +using Microsoft.AspNetCore.Components; +using TIAM.Entities.ServiceProviders; using TIAM.Services; namespace TIAMSharedUI.Shared.Components.Grids; @@ -14,4 +15,18 @@ public class CompanyGrid : TiamGrid UpdateMessageTag = SignalRTags.UpdateCompanyAsync; RemoveMessageTag = SignalRTags.RemoveCompanyAsync; } + + protected override Task SetParametersAsyncCore(ParameterView parameters) + { + if (!IsInitializedParameters) + { + //ShowFilterRow = true; + //ShowGroupPanel = true; + //AllowSort = false; + + //etc... + } + + return base.SetParametersAsyncCore(parameters); + } } \ No newline at end of file diff --git a/TIAMSharedUI/Shared/Components/Grids/TiamGrid.cs b/TIAMSharedUI/Shared/Components/Grids/TiamGrid.cs index c4c50501..962edade 100644 --- a/TIAMSharedUI/Shared/Components/Grids/TiamGrid.cs +++ b/TIAMSharedUI/Shared/Components/Grids/TiamGrid.cs @@ -13,7 +13,7 @@ namespace TIAMSharedUI.Shared.Components.Grids { public class TiamGrid : DxGrid where TDataItem : class, IEntityGuid { - private bool _initialParametersSet; + protected bool IsInitializedParameters; private IList? _dataSource; private string _gridLogName; @@ -57,6 +57,12 @@ namespace TIAMSharedUI.Shared.Components.Grids protected override void OnInitialized() { + if (Logger == null) + throw new NullReferenceException($"[{GetType().Name}] Logger == null"); + + if (SignalRClient == null) + Logger.Error($"[{GetType().Name}] SignalRClient == null"); + base.OnInitialized(); } @@ -170,7 +176,7 @@ namespace TIAMSharedUI.Shared.Components.Grids protected override Task SetParametersAsyncCore(ParameterView parameters) { - if (!_initialParametersSet) + if (!IsInitializedParameters) { base.DataItemDeleting = EventCallback.Factory.Create(this, OnItemDeleting); base.EditModelSaving = EventCallback.Factory.Create(this, OnItemSaving); @@ -180,7 +186,7 @@ namespace TIAMSharedUI.Shared.Components.Grids //ShowGroupPanel = true; //AllowSort = false; - _initialParametersSet = true; + IsInitializedParameters = true; } return base.SetParametersAsyncCore(parameters); diff --git a/TIAMSharedUI/Shared/Components/Grids/TransferGrid.cs b/TIAMSharedUI/Shared/Components/Grids/TransferGrid.cs index d76f545d..c5772f70 100644 --- a/TIAMSharedUI/Shared/Components/Grids/TransferGrid.cs +++ b/TIAMSharedUI/Shared/Components/Grids/TransferGrid.cs @@ -1,4 +1,5 @@ -using TIAM.Entities.Transfers; +using Microsoft.AspNetCore.Components; +using TIAM.Entities.Transfers; using TIAM.Services; namespace TIAMSharedUI.Shared.Components.Grids; @@ -14,4 +15,18 @@ public class TransferGrid : TiamGrid UpdateMessageTag = SignalRTags.UpdateTransferAsync; RemoveMessageTag = SignalRTags.RemoveTransferAsync; } + + protected override Task SetParametersAsyncCore(ParameterView parameters) + { + if (!IsInitializedParameters) + { + //ShowFilterRow = true; + //ShowGroupPanel = true; + //AllowSort = false; + + //etc... + } + + return base.SetParametersAsyncCore(parameters); + } } \ No newline at end of file diff --git a/TIAMSharedUI/Shared/Components/TiamErrorBoundaryComponent.razor b/TIAMSharedUI/Shared/Components/TiamErrorBoundaryComponent.razor index 793f0002..d813cd0d 100644 --- a/TIAMSharedUI/Shared/Components/TiamErrorBoundaryComponent.razor +++ b/TIAMSharedUI/Shared/Components/TiamErrorBoundaryComponent.razor @@ -42,7 +42,7 @@ else // { // } - protected override Task OnErrorAsync(Exception exception) + protected override async Task OnErrorAsync(Exception exception) { _currentError = exception; @@ -52,18 +52,22 @@ else try { - _logger.Error($"An error occurred: {exception.Message}", exception, categoryName, memberName); + _logger.Writer()?.Error($"An error occurred: {exception.Message}", exception, categoryName, memberName); } catch (Exception loggerException) { - jsRuntime.InvokeVoidAsync("console.error", $"{nameof(TiamErrorBoundaryComponent)}->OnErrorAsync; Logger error! {loggerException}"); + await jsRuntime.InvokeVoidAsync("console.error", $"{nameof(TiamErrorBoundaryComponent)}->OnErrorAsync; Logger error! {loggerException}"); - jsRuntime.InvokeVoidAsync("console.error", $"{nameof(TiamErrorBoundaryComponent)}->{memberName}; An error occurred: {exception}"); + await jsRuntime.InvokeVoidAsync("console.error", $"{nameof(TiamErrorBoundaryComponent)}->{memberName}; An error occurred: {exception}"); //jsRuntime.InvokeVoidAsync("console.warn", $"{nameof(TiamErrorBoundaryComponent)}->{memberName}; Error details: {exception.StackTrace}"); } + await Task.Delay(500); //KELL IDE, KÜLÖNBEN NEM MEGY KI A LOG A SZERVERRE! - J. + //ShowErrorNotification("An unexpected error occurred. Please try again later."); - return OnError.HasDelegate ? OnError.InvokeAsync(exception) : base.OnErrorAsync(exception); + + if (OnError.HasDelegate) await OnError.InvokeAsync(exception); + else await base.OnErrorAsync(exception); } // private void ShowErrorNotification(string message)