From e3c26ccd35e51a57c29d2d4c742a20133b58e9ee Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 27 May 2024 19:24:22 +0200 Subject: [PATCH] ManageServiceProvidrers --- TIAM.Database/DataLayers/Admins/AdminDal.cs | 7 +- TIAM.Services/AcSignalRTags.cs | 1 + TIAMSharedUI/Pages/Formula1.razor | 1 + TIAMSharedUI/Pages/Index.razor | 3 +- TIAMSharedUI/Pages/TransferPage.razor | 1 + .../CompaniesNestedUserProductMapping.razor | 39 +++--- .../SysAdmins/ManageServiceProviders.razor | 131 +++++++++++++----- .../User/SysAdmins/ManageTransfers.razor | 5 +- .../ServiceProviderAPIController.cs | 8 +- .../Controllers/TransferDataAPIController.cs | 2 +- .../Server/Services/DevAdminSignalRhub.cs | 5 + .../Services/ServiceProviderDataService.cs | 7 +- 12 files changed, 140 insertions(+), 70 deletions(-) diff --git a/TIAM.Database/DataLayers/Admins/AdminDal.cs b/TIAM.Database/DataLayers/Admins/AdminDal.cs index f165bb2e..080623c6 100644 --- a/TIAM.Database/DataLayers/Admins/AdminDal.cs +++ b/TIAM.Database/DataLayers/Admins/AdminDal.cs @@ -236,7 +236,12 @@ namespace TIAM.Database.DataLayers.Admins public Task> GetServiceProvidersAsync() { - return Context.ServiceProviders.ToListAsync(); + return SessionAsync(ctx => ctx.ServiceProviders.ToList()); + } + + public Task GetServiceProvidersAsyncJson() + { + return SessionAsync(ctx => ctx.ServiceProviders.ToJson()); } public virtual Task GetServiceProviderByIdAsync(Guid id) diff --git a/TIAM.Services/AcSignalRTags.cs b/TIAM.Services/AcSignalRTags.cs index 6540239b..f67c7e6d 100644 --- a/TIAM.Services/AcSignalRTags.cs +++ b/TIAM.Services/AcSignalRTags.cs @@ -7,4 +7,5 @@ public class SignalRTags : AcSignalRTags public const int GetTransfersAsync = 5; public const int GetPropertiesByOwnerIdAsync = 6; public const int UpdateTransferAsync = 7; + public const int GetCompaniesAsync = 8; } \ No newline at end of file diff --git a/TIAMSharedUI/Pages/Formula1.razor b/TIAMSharedUI/Pages/Formula1.razor index f5a57dc1..797b77fe 100644 --- a/TIAMSharedUI/Pages/Formula1.razor +++ b/TIAMSharedUI/Pages/Formula1.razor @@ -422,6 +422,7 @@ new HeroSliderItem "Destination", "PickupAddress", "ProductId", + "PaymentId", "FlightNumber", "TripDate", "FirstName", diff --git a/TIAMSharedUI/Pages/Index.razor b/TIAMSharedUI/Pages/Index.razor index 8eef7594..57407900 100644 --- a/TIAMSharedUI/Pages/Index.razor +++ b/TIAMSharedUI/Pages/Index.razor @@ -130,7 +130,8 @@ { "Id", "UserId", - "ProductId", + "ProductId", + "PaymentId", "FirstName", "LastName", "UserProductMappingId", diff --git a/TIAMSharedUI/Pages/TransferPage.razor b/TIAMSharedUI/Pages/TransferPage.razor index 72e04509..6360f4fa 100644 --- a/TIAMSharedUI/Pages/TransferPage.razor +++ b/TIAMSharedUI/Pages/TransferPage.razor @@ -97,6 +97,7 @@ new HeroSliderItem "Id", "UserId", "ProductId", + "PaymentId", "TripDate", "FirstName", "LastName", diff --git a/TIAMSharedUI/Pages/User/SysAdmins/CompaniesNestedUserProductMapping.razor b/TIAMSharedUI/Pages/User/SysAdmins/CompaniesNestedUserProductMapping.razor index 1b57b299..60394f80 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/CompaniesNestedUserProductMapping.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/CompaniesNestedUserProductMapping.razor @@ -30,23 +30,23 @@ - - + + @* *@ @{ - var transfer2 = (UserProductMapping)EditFormContext.EditModel; + var transfer2 = (UserToCompany)EditFormContext.EditModel; } @EditFormContext.GetEditor("UserId") - - + + - + @* @EditFormContext.GetEditor("Permissions") - + *@ @@ -59,11 +59,11 @@ [Parameter] public bool KeyboardNavigationEnabled { get; set; } [Parameter] - public UserModelDtoDetail UserModelDtoDetail { get; set; } + public Company CurrentCompany { get; set; } - List _detailGridData; + List _detailGridData; - List _availableServices; + List _availableUsers; public UserModelDtoDetail UserInfo; @@ -71,10 +71,9 @@ protected override async Task OnInitializedAsync() { - _logger = new LoggerClient(LogWriters.ToArray()); + _logger = new LoggerClient(LogWriters.ToArray()); - _detailGridData = UserModelDtoDetail.ServiceProviders ?? new List(); - _availableServices = await ServiceProviderDataService.GetServiceProvidersAsync(); + _detailGridData = CurrentCompany.UserToServiceProviders ?? new List(); _logger.Info($"DetailGridData: {_detailGridData.Count}"); } @@ -83,12 +82,11 @@ { if (!e.IsNew) return; - var newProductMapping = new UserProductMapping - { - ProductId = Guid.NewGuid(), - UserId = UserModelDtoDetail.Id, - Permissions = 1 - }; + var newProductMapping = new UserToCompany + { + ServiceProviderId = CurrentCompany.Id, + UserId = Guid.Empty + }; e.EditModel = newProductMapping; } @@ -97,7 +95,8 @@ { if (e.IsNew) //add new orderData to orderData array - _logger.Info("New orderData added"); + _logger.Info("New user added to the company"); + else _logger.Info("orderData updated"); diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor index cbd6b801..5452f121 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor @@ -1,9 +1,11 @@ @page "/user/companies" +@using AyCode.Core.Helpers @using BlazorAnimation @using TIAM.Core.Enums @using TIAM.Entities.ServiceProviders @using TIAM.Entities.Transfers @using TIAM.Resources +@using TIAM.Services @using TIAMSharedUI.Pages.Components @using TIAMSharedUI.Shared @using TIAMWebApp.Shared.Application.Interfaces @@ -22,6 +24,7 @@ @inject IStringLocalizer localizer @inject IWizardProcessor wizardProcessor @inject IServiceProviderDataService serviceProviderDataService +@inject IUserDataService userDataService @inject ISessionService sessionService @inject DevAdminSignalClient devAdminSignalClient; Admin - Companies @@ -31,9 +34,24 @@

Manage transfers here!

+ + + + + + + + + @* *@ + + - + - + + + @{ + 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.