From d721e20f1a431d140f6d93f41ef9f4b8b4884b58 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 27 May 2024 09:44:08 +0200 Subject: [PATCH 1/3] Userdataservice remove call serviceprovider api --- .../Services/UserDataServiceMobile.cs | 18 ++- .../CompaniesNestedUserProductMapping.razor | 120 ++++++++++++++++++ .../SysAdmins/ManageServiceProviders.razor | 68 +++------- TIAMSharedUI/Shared/Users/AdminNavMenu.razor | 5 + .../Client/Services/UserDataServiceWeb.cs | 18 ++- 5 files changed, 171 insertions(+), 58 deletions(-) create mode 100644 TIAMSharedUI/Pages/User/SysAdmins/CompaniesNestedUserProductMapping.razor diff --git a/TIAMMobileApp/Services/UserDataServiceMobile.cs b/TIAMMobileApp/Services/UserDataServiceMobile.cs index 3324798f..4ee8cce4 100644 --- a/TIAMMobileApp/Services/UserDataServiceMobile.cs +++ b/TIAMMobileApp/Services/UserDataServiceMobile.cs @@ -43,14 +43,24 @@ namespace TIAMMobileApp.Services if (userModelDto != null) { + Dictionary userProperties = new Dictionary(); //get user's properties - var hasProperties = await serviceProviderDataService.GetPropertiesByOwnerIdAsync(userModelDto.Id); + bool hasProperties = userModelDto.ServiceProviders.Count > 0 ? true : userModelDto.ServiceProviders.Count == 0 ? false : false; + if (hasProperties) + { - if (hasProperties != null) - _logger.Info($"{hasProperties.Count} properties found"); + //var Properties = await serviceProviderDataService.GetPropertiesByOwnerIdAsync(userModelDto.Id); + var Properties = userModelDto.ServiceProviders; + + _logger.Info($"{Properties.Count} properties found"); + foreach ( var property in Properties ) + { + userProperties.Add(property.Id, property.Name); + } + } //create user session model - var user = new UserSessionModel(userModelDto.Id, UserType.User, userModelDto, hasProperties, 1); + var user = new UserSessionModel(userModelDto.Id, UserType.User, userModelDto, userProperties, 1); return user; } else diff --git a/TIAMSharedUI/Pages/User/SysAdmins/CompaniesNestedUserProductMapping.razor b/TIAMSharedUI/Pages/User/SysAdmins/CompaniesNestedUserProductMapping.razor new file mode 100644 index 00000000..1b57b299 --- /dev/null +++ b/TIAMSharedUI/Pages/User/SysAdmins/CompaniesNestedUserProductMapping.razor @@ -0,0 +1,120 @@ +@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 IEnumerable LogWriters + +
+ UserProductMapping +
+ + + + + + + + + + @{ + var transfer2 = (UserProductMapping)EditFormContext.EditModel; + } + + + @EditFormContext.GetEditor("UserId") + + + + + + @EditFormContext.GetEditor("Permissions") + + + + + + + + + +@code { + [Parameter] + public bool KeyboardNavigationEnabled { get; set; } + [Parameter] + public UserModelDtoDetail UserModelDtoDetail { get; set; } + + List _detailGridData; + + List _availableServices; + + public UserModelDtoDetail UserInfo; + + ILogger _logger; + + protected override async Task OnInitializedAsync() + { + _logger = new LoggerClient(LogWriters.ToArray()); + + _detailGridData = UserModelDtoDetail.ServiceProviders ?? new List(); + _availableServices = await ServiceProviderDataService.GetServiceProvidersAsync(); + + _logger.Info($"DetailGridData: {_detailGridData.Count}"); + } + + void CustomizeEditModel(GridCustomizeEditModelEventArgs e) + { + if (!e.IsNew) return; + + var newProductMapping = new UserProductMapping + { + ProductId = Guid.NewGuid(), + UserId = UserModelDtoDetail.Id, + Permissions = 1 + }; + + e.EditModel = newProductMapping; + } + + async Task EditModelSaving(GridEditModelSavingEventArgs e) + { + if (e.IsNew) + //add new orderData to orderData array + _logger.Info("New orderData added"); + else + _logger.Info("orderData updated"); + + await UpdateDataAsync(); + } + + async Task DataItemDeleting(GridDataItemDeletingEventArgs e) + { + //remove orderData from orderData array + _logger.Info("orderData deleted"); + //await UpdateDataAsync(); + } + + async Task UpdateDataAsync() + { + //refresh grid + _logger.Info("orderData grid refreshed"); + } + +} \ No newline at end of file diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor index 4d5f3fb0..cbd6b801 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor @@ -99,11 +99,11 @@ - + @{ - var transfer2 = (Transfer)EditFormContext.EditModel; + var transfer2 = (Company)EditFormContext.EditModel; } @@ -147,25 +147,10 @@ "SenderFullName", "SenderId", "ContextId", - ]; - - public List Statuses { get; set; } = - [ - new(Convert.ToInt16(TransferStatusType.OrderSubmitted), "Order submitted"), - new(Convert.ToInt16(TransferStatusType.OrderConfirmed), "Order confirmed"), - new(Convert.ToInt16(TransferStatusType.AssignedToDriver), "Assigned to driver"), - new(Convert.ToInt16(TransferStatusType.DriverConfirmed), "Driver confirmed"), - new(Convert.ToInt16(TransferStatusType.DriverEnRoute), "Driver enroute"), - new(Convert.ToInt16(TransferStatusType.PassengerPickup), "Passenger in car"), - new(Convert.ToInt16(TransferStatusType.Finished), "Finished"), - new(Convert.ToInt16(TransferStatusType.UserCanceled), "User cancelled"), - new(Convert.ToInt16(TransferStatusType.AdminDenied), "Admin cancelled") - ]; + ]; private MessageWizardModel _messageWizardModel = new(); - public List AppointmentModels { get; set; } - DateTime StartDate { get; set; } = DateTime.Today; DxSchedulerDataStorage _dataStorage = new(); @@ -227,43 +212,26 @@ void Grid_CustomizeElement(GridCustomizeElementEventArgs e) { - if (e.ElementType == GridElementType.DataRow && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") == 5) - { - e.CssClass = "bg-important"; - } - else if (e.ElementType == GridElementType.DataRow && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") > 5 && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") < 35) - { - e.CssClass = "bg-attention"; - } - else if (e.ElementType == GridElementType.DataRow && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") == 35) - { - e.CssClass = "bg-finished"; - } - else if (e.ElementType == GridElementType.DataRow && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") > 35) - { - e.CssClass = "bg-cancel"; - } - if (e.ElementType == GridElementType.HeaderCell) - { - e.Style = "background-color: rgba(0, 0, 0, 0.08)"; - e.CssClass = "header-bold"; - } + //TODO mark non active partners + } void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e) { - if (!e.IsNew) return; + if (!e.IsNew) + { + + } + else + { + var transferEditModel = (Company)e.EditModel; //TODO not valid cast + transferEditModel.Id = Guid.NewGuid(); + transferEditModel.AffiliateId = Guid.NewGuid(); + transferEditModel.Name = "Company name"; + transferEditModel.OwnerId = Guid.Empty; + transferEditModel.ProfileId = Guid.NewGuid(); + } - var transferEditModel = (Transfer)e.EditModel; //TODO not valid cast - transferEditModel.Id = Guid.NewGuid(); - transferEditModel.ToAddress = "Where to?"; - transferEditModel.FromAddress = "From where?"; - transferEditModel.Appointment = DateTime.UtcNow.AddDays(3); - transferEditModel.PassengerCount = 1; - transferEditModel.FirstName = "John"; - transferEditModel.LastName = "Doe"; - transferEditModel.ContactPhone = "+00000000000"; - transferEditModel.ContactEmail = "your@email.address"; } async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e) diff --git a/TIAMSharedUI/Shared/Users/AdminNavMenu.razor b/TIAMSharedUI/Shared/Users/AdminNavMenu.razor index c90cef75..2272dbd8 100644 --- a/TIAMSharedUI/Shared/Users/AdminNavMenu.razor +++ b/TIAMSharedUI/Shared/Users/AdminNavMenu.razor @@ -66,6 +66,11 @@ Transfers + + + + + + + + + + @* *@ + + - + - + + + @{ + var keyField = context.Value; + var keyItem = (Company)context.DataItem; + string buttonText = "Set owner"; + if(keyField == null) + { + + } + } + + @* - - @{ - var keyField = context.Value; - - var keyItem = (TiamServiceProvider)context.DataItem; - string buttonText = "Contact"; - - } - - *@ - + + *@ - + @{ @@ -109,6 +130,9 @@ @EditFormContext.GetEditor("Name") + + @EditFormContext.GetEditor("CommissionPercent") + @@ -116,7 +140,7 @@ - + @@ -135,9 +159,10 @@ //public Transfer myModel = new Transfer(); - public Dictionary ServiceProviderDataList { get; set; } + public List ServiceProviderDataList { get; set; } - bool PopupVisible { get; set; } + bool SendMailPopupVisible { get; set; } + bool SetOwnerPopupVisible { get; set; } public List IgnoreList = [ "ReceiverEmailAddress", @@ -147,10 +172,10 @@ "SenderFullName", "SenderId", "ContextId", - ]; + ]; private MessageWizardModel _messageWizardModel = new(); - + private string UpdateOwnerIdText; DateTime StartDate { get; set; } = DateTime.Today; DxSchedulerDataStorage _dataStorage = new(); @@ -163,13 +188,41 @@ _messageWizardModel.SenderEmailAddress = ""; _messageWizardModel.ReceiverEmailAddress = ""; _messageWizardModel.ReceiverFullName = ""; - PopupVisible = true; + SendMailPopupVisible = true; + } + + void SetOwnerPopup(Company item) + { + _logger.Info($"Setting owner of {item.OwnerId}, {item.Id}"); + + SetOwnerPopupVisible = true; + } + + async Task SetOwner(Guid CompanyId) + { + //get user id from DB + var userModelDto = await userDataService.GetUserByEmailAsync(UpdateOwnerIdText); + + //overwrite ServiceProvider ownerid + var target = await serviceProviderDataService.GetServiceProviderByIdAsync(CompanyId); + if (target == null) + { + return false; + } + else + { + target.OwnerId = userModelDto.Id; + var result = await serviceProviderDataService.UpdateServiceProviderAsync(target); + return result; + + } + } void CancelCreateClick() { - PopupVisible = false; + SendMailPopupVisible = false; } void EulaPopupClosed() { @@ -189,7 +242,7 @@ { var messageModel = result as MessageWizardModel; messageModel.ContextId = _messageWizardModel.ContextId; - //messageModel.SenderId = sessionService.User.UserId; + //messageModel.SenderId = sessionService.User.UserId; string FormatEmailContent() { @@ -197,7 +250,7 @@

Dear {messageModel.SenderFullName},

-

{messageModel.Content}:

+

{messageModel.Content}:

Best regards,
Tour I Am team

"; @@ -220,16 +273,16 @@ { if (!e.IsNew) { - + } else - { + { var transferEditModel = (Company)e.EditModel; //TODO not valid cast transferEditModel.Id = Guid.NewGuid(); transferEditModel.AffiliateId = Guid.NewGuid(); transferEditModel.Name = "Company name"; - transferEditModel.OwnerId = Guid.Empty; - transferEditModel.ProfileId = Guid.NewGuid(); + transferEditModel.OwnerId = Guid.Empty; + transferEditModel.ProfileId = Guid.NewGuid(); } } @@ -279,7 +332,8 @@ async Task UpdateDataAsync() { - ServiceProviderDataList = await serviceProviderDataService.GetPropertiesByOwnerIdAsync(sessionService.User.UserId); + ServiceProviderDataList = await serviceProviderDataService.GetServiceProvidersAsync(); + //StateHasChanged(); _logger.Info("orderData grid refreshed"); } @@ -287,19 +341,20 @@ { _logger = new LoggerClient(LogWriters.ToArray()); - // devAdminSignalClient.SendRequestToServerAsync(SignalRTags.GetTransfersAsync, responseBytes => - // { - // var transfers = responseBytes.MessagePackTo(ContractlessStandardResolver.Options).JsonTo>(); + await UpdateDataAsync(); - // ServiceProviderDataList = transfers; - // StateHasChanged(); - // }).Forget(); - + //var transfers = await devAdminSignalClient.GetAllAsync>(SignalRTags.GetTransfersAsync); + //InitializeDataSources(transfers ?? []); - base.OnInitialized(); + + //InitializeDataSources(await transferDataService.GetTransfersAsync()); + + base.OnInitializedAsync(); } - + + + void ColumnChooserButton_Click() { diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor index 37c9b3a8..0178e8c9 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor @@ -94,6 +94,7 @@ + @@ -352,8 +353,8 @@ { _logger.Info("orderData updated at id " + ((Transfer)e.EditModel).Id); - transfer = await devAdminSignalClient.UpdateAsync(SignalRTags.UpdateTransferAsync, (Transfer)e.EditModel); - //transfer = await transferDataService.UpdateTransferAsync((Transfer)e.EditModel); + //transfer = await devAdminSignalClient.UpdateAsync(SignalRTags.UpdateTransferAsync, (Transfer)e.EditModel); + transfer = await transferDataService.UpdateTransferAsync((Transfer)e.EditModel); } //get transfer from TransferData by Id diff --git a/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs b/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs index 2250b60b..743c9630 100644 --- a/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs +++ b/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs @@ -79,11 +79,9 @@ namespace TIAMWebApp.Server.Controllers [AllowAnonymous] [HttpGet] [Route(APIUrls.GetServiceProvidersRouteName)] - public Task> GetServiceProviders() - { - //var users = await _serviceProviderDal.Ctx.Users.ToListAsync();//.GetUsersAsync(); - //return users; - return _adminDal.GetServiceProvidersAsync(); + public async Task GetServiceProviders() + { + return await _adminDal.GetServiceProvidersAsyncJson(); } //18. diff --git a/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs b/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs index f35980e7..2855b334 100644 --- a/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs +++ b/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs @@ -405,7 +405,7 @@ namespace TIAMWebApp.Server.Controllers [Route(APIUrls.UpdateTransferRouteName)] public async Task UpdateTransfer(Transfer transferToModify) { - _logger.Info("UpdateTransfer called!"); + _logger.Info($"UpdateTransfer called! + {Request.ReadFormAsync()}"); await _adminDal.UpdateTransferAsync(transferToModify); return transferToModify; diff --git a/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs b/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs index f0139c6e..9f93c045 100644 --- a/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs +++ b/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs @@ -11,6 +11,7 @@ using System.ServiceModel.Channels; using TIAM.Entities.Transfers; using TIAM.Services; using TIAMWebApp.Server.Controllers; +using TIAM.Entities.ServiceProviders; namespace TIAMWebApp.Server.Services; @@ -75,6 +76,10 @@ public class DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController await ResponseToCaller(messageTag, new SignalResponseMessage(SignalResponseStatus.Success, transfer.ToJson()), requestId); } + else if (messageTag == SignalRTags.GetCompaniesAsync) + { + await ResponseToCaller(messageTag, new SignalResponseMessage(SignalResponseStatus.Success, await serviceProviderAPIController.GetServiceProviders()), requestId); + } return; } catch (Exception ex) diff --git a/TIAMWebApp/Shared/Services/ServiceProviderDataService.cs b/TIAMWebApp/Shared/Services/ServiceProviderDataService.cs index 85b9a239..bfacfa37 100644 --- a/TIAMWebApp/Shared/Services/ServiceProviderDataService.cs +++ b/TIAMWebApp/Shared/Services/ServiceProviderDataService.cs @@ -123,9 +123,12 @@ namespace TIAMWebApp.Shared.Application.Services } //16. - public Task> GetServiceProvidersAsync() + public async Task> GetServiceProvidersAsync() { - throw new NotImplementedException(); + var companies = await _devAdminSignalClient.GetAllAsync>(SignalRTags.GetCompaniesAsync); + if (companies != null) _logger.DetailConditional($"companies: {string.Join("; ", companies.Count)}"); + + return companies; } //24. From e0bed5c5e839d6f1fd0887744bf3fb1d3540f1b0 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 27 May 2024 19:26:36 +0200 Subject: [PATCH 3/3] my hub additions --- TIAMWebApp/Server/Services/DevAdminSignalRhub.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs b/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs index c7bb7926..dc9888bc 100644 --- a/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs +++ b/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs @@ -80,6 +80,10 @@ public class DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController await transferDataAPIController.UpdateTransfer(transfer); await ResponseToCaller(messageTag, new SignalResponseMessage(SignalResponseStatus.Success, transfer.ToJson()), requestId); } + else if (messageTag == SignalRTags.GetCompaniesAsync) + { + await ResponseToCaller(messageTag, new SignalResponseMessage(SignalResponseStatus.Success, await serviceProviderAPIController.GetServiceProviders()), requestId); + } return; } catch (Exception ex)