From 3302a9ee8ef6b86f516aad34b229bc06eef67ba1 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 28 May 2024 22:50:31 +0200 Subject: [PATCH] Address and Profile Grid --- .../EditComponents/EditAddressComponent.razor | 44 +++++ .../User/SysAdmins/AddressGridComponent.razor | 151 ++++++++++++++++++ .../SysAdmins/ManageServiceProviders.razor | 27 +++- .../User/SysAdmins/ProfileGridComponent.razor | 124 ++++++++++++++ .../ServiceProviderAPIController.cs | 6 + 5 files changed, 344 insertions(+), 8 deletions(-) create mode 100644 TIAMSharedUI/Pages/Components/EditComponents/EditAddressComponent.razor create mode 100644 TIAMSharedUI/Pages/User/SysAdmins/AddressGridComponent.razor create mode 100644 TIAMSharedUI/Pages/User/SysAdmins/ProfileGridComponent.razor diff --git a/TIAMSharedUI/Pages/Components/EditComponents/EditAddressComponent.razor b/TIAMSharedUI/Pages/Components/EditComponents/EditAddressComponent.razor new file mode 100644 index 00000000..0fa95812 --- /dev/null +++ b/TIAMSharedUI/Pages/Components/EditComponents/EditAddressComponent.razor @@ -0,0 +1,44 @@ +@using TIAM.Entities.Addresses +@* @typeparam TModel *@ + + + + + + + + + + + + + + + + + + + + + + + + + Save Changes + + + + +@code { + [Parameter] + public Address Model { get; set; } + + [Parameter] + public EventCallback
OnAddressChanged { get; set; } + + + private async Task OnValidSubmit() + { + await OnAddressChanged.InvokeAsync(Model); + } +} diff --git a/TIAMSharedUI/Pages/User/SysAdmins/AddressGridComponent.razor b/TIAMSharedUI/Pages/User/SysAdmins/AddressGridComponent.razor new file mode 100644 index 00000000..0e53138b --- /dev/null +++ b/TIAMSharedUI/Pages/User/SysAdmins/AddressGridComponent.razor @@ -0,0 +1,151 @@ +@using TIAM.Entities.Products +@using TIAM.Entities.ServiceProviders +@using TIAM.Entities.Transfers +@using TIAM.Entities.Drivers +@using TIAM.Entities.Users +@using TIAM.Models.Dtos.Users +@using TIAMWebApp.Shared.Application.Interfaces +@using TIAMWebApp.Shared.Application.Utility +@using AyCode.Services.Loggers +@using TIAM.Core.Loggers +@using TIAM.Entities.Addresses +@using TIAMSharedUI.Pages.Components.EditComponents +@inject IServiceProviderDataService serviceProviderDataService +@inject IUserDataService userDataService +@inject ITransferDataService transferDataService +@inject IEnumerable LogWriters + +
+ Profile +
+ + + + + + + + + + + + + + @{ + Address bleh = (Address)context.EditModel; + } + @* *@ + + + + + +@code { + [Parameter] + public bool KeyboardNavigationEnabled { get; set; } + [Parameter] + public object AddressContext { get; set; } + [Parameter] + public string ContextIdType { get; set; } + + + List _detailGridData; + + List _availableProfiles; + + ILogger _logger; + + public void SaveAddress(Address addressToSave) + { + + } + + protected override async Task OnInitializedAsync() + { + Address myAddress = new Address(); + + + _logger = new LoggerClient(LogWriters.ToArray()); + if(ContextIdType == null) + { + //get all profiles from DB + } + else + { + switch (ContextIdType) + { + case ("userprofile"): + //get profile for user + UserModelDto resultData = (UserModelDto)AddressContext; + _detailGridData.Add(resultData.UserDto.Profile.Address); + break; + case ("productprofile"): + //get profile for user + Product resultData2 = (Product)AddressContext; + _detailGridData.Add(resultData2.Profile.Address); + break; + case ("companyProfile"): + //get profile for user + var resultData3 = (Company)AddressContext; + _detailGridData.Add(resultData3.Profile.Address); + break; + case ("transferdestination"): + //get address for transferDestination + TransferDestination resultData4 = (TransferDestination)AddressContext; + _detailGridData.Add(resultData4.Address); + break; + + } + } + + _logger.Info($"DetailGridData: {_detailGridData.Count}"); + } + + + + void CustomizeEditModel(GridCustomizeEditModelEventArgs e) + { + if (!e.IsNew) return; + + //editmodel customize + + + } + + async Task EditModelSaving(GridEditModelSavingEventArgs e) + { + if (e.IsNew) + //add new orderData to orderData array + _logger.Info("Data added"); + else + _logger.Info("Data updated"); + + await UpdateDataAsync(); + } + + async Task DataItemDeleting(GridDataItemDeletingEventArgs e) + { + + _logger.Info("orderData deleted"); + + } + + async Task UpdateDataAsync() + { + //refresh grid + _logger.Info("orderData grid refreshed"); + StateHasChanged(); + } + +} diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor index 8f33d017..c7f37154 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor @@ -37,12 +37,18 @@ - - - + + + @@ -102,9 +108,10 @@ @{ var keyField = context.Value; + Guid keyFieldValue = (Guid)keyField; var keyItem = (Company)context.DataItem; string buttonText = "Set owner"; - if(keyField == null) + if(keyFieldValue == Guid.Empty) { } @@ -119,8 +126,11 @@ *@ - + @* + *@ + + @{ @@ -175,7 +185,8 @@ ]; private MessageWizardModel _messageWizardModel = new(); - private string UpdateOwnerIdText; + 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(); @@ -201,7 +212,7 @@ async Task SetOwner(Guid CompanyId) { //get user id from DB - var userModelDto = await userDataService.GetUserByEmailAsync(UpdateOwnerIdText); + var userModelDto = await userDataService.GetUserByEmailAsync(Email); //overwrite ServiceProvider ownerid var target = await serviceProviderDataService.GetServiceProviderByIdAsync(CompanyId); diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ProfileGridComponent.razor b/TIAMSharedUI/Pages/User/SysAdmins/ProfileGridComponent.razor new file mode 100644 index 00000000..df3a63f4 --- /dev/null +++ b/TIAMSharedUI/Pages/User/SysAdmins/ProfileGridComponent.razor @@ -0,0 +1,124 @@ +@using TIAM.Entities.Products +@using TIAM.Entities.ServiceProviders +@using TIAM.Entities.Transfers +@using TIAM.Entities.Drivers +@using TIAM.Entities.Users +@using TIAM.Models.Dtos.Users +@using TIAMWebApp.Shared.Application.Interfaces +@using TIAMWebApp.Shared.Application.Utility +@using AyCode.Services.Loggers +@using TIAM.Core.Loggers +@inject IServiceProviderDataService serviceProviderDataService +@inject IUserDataService userDataService +@inject IEnumerable LogWriters + +
+ Profile +
+ + + + + + + + + + + + +@code { + [Parameter] + public bool KeyboardNavigationEnabled { get; set; } + [Parameter] + public object ProfileContext { get; set; } + [Parameter] + public string ContextIdType { get; set; } + + List _detailGridData; + + List _availableProfiles; + + ILogger _logger; + + protected override async Task OnInitializedAsync() + { + _logger = new LoggerClient(LogWriters.ToArray()); + if(ContextIdType == null) + { + //get all profiles from DB + } + else + { + switch (ContextIdType) + { + case ("user"): + //get profile for user + UserModelDto resultData = (UserModelDto)ProfileContext; + _detailGridData.Add(resultData.UserDto.Profile); + break; + case ("product"): + //get profile for product + //var resultData2 = await serviceProviderDataService.GetProductById(ContextId); //todo + Product resultData2 = (Product)ProfileContext; + _detailGridData.Add(resultData2.Profile); + break; + case ("company"): + //get profile for company + Company resultData3 = (Company)ProfileContext; + _detailGridData.Add(resultData3.Profile); + break; + } + } + + _logger.Info($"DetailGridData: {_detailGridData.Count}"); + } + + + + void CustomizeEditModel(GridCustomizeEditModelEventArgs e) + { + if (!e.IsNew) return; + + //editmodel customize + + + } + + async Task EditModelSaving(GridEditModelSavingEventArgs e) + { + if (e.IsNew) + //add new orderData to orderData array + _logger.Info("Data added"); + else + _logger.Info("Data updated"); + + await UpdateDataAsync(); + } + + async Task DataItemDeleting(GridDataItemDeletingEventArgs e) + { + + _logger.Info("orderData deleted"); + + } + + async Task UpdateDataAsync() + { + //refresh grid + _logger.Info("orderData grid refreshed"); + StateHasChanged(); + } + +} diff --git a/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs b/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs index a6f014e3..ec622035 100644 --- a/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs +++ b/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs @@ -14,6 +14,8 @@ using TIAM.Entities.Transfers; using System.Text.Json.Nodes; using System.Text.Json; using Newtonsoft.Json.Linq; +using TIAM.Entities.Profiles; +using TIAM.Entities.Addresses; namespace TIAMWebApp.Server.Controllers { @@ -78,6 +80,10 @@ namespace TIAMWebApp.Server.Controllers GlobalLogger.Info($@"ServiceProvider to be created: {id}, {name}, {ownerId}"); Company toCreate = new Company(id, name, ownerId, Guid.NewGuid()); + toCreate.Profile = new Profile(); + toCreate.Profile.Id = Guid.NewGuid(); + toCreate.Profile.Address = new Address(); + toCreate.Profile.Address.Id = Guid.NewGuid(); toCreate.CommissionPercent = commissionRate; var result = await _adminDal.CreateServiceProviderAsync(toCreate); if (!result)