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/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/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 new file mode 100644 index 00000000..60394f80 --- /dev/null +++ b/TIAMSharedUI/Pages/User/SysAdmins/CompaniesNestedUserProductMapping.razor @@ -0,0 +1,119 @@ +@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 = (UserToCompany)EditFormContext.EditModel; + } + + + @EditFormContext.GetEditor("UserId") + + + + + @* + @EditFormContext.GetEditor("Permissions") + *@ + + + + + + + + +@code { + [Parameter] + public bool KeyboardNavigationEnabled { get; set; } + [Parameter] + public Company CurrentCompany { get; set; } + + List _detailGridData; + + List _availableUsers; + + public UserModelDtoDetail UserInfo; + + ILogger _logger; + + protected override async Task OnInitializedAsync() + { + _logger = new LoggerClient(LogWriters.ToArray()); + + _detailGridData = CurrentCompany.UserToServiceProviders ?? new List(); + + _logger.Info($"DetailGridData: {_detailGridData.Count}"); + } + + void CustomizeEditModel(GridCustomizeEditModelEventArgs e) + { + if (!e.IsNew) return; + + var newProductMapping = new UserToCompany + { + ServiceProviderId = CurrentCompany.Id, + UserId = Guid.Empty + }; + + e.EditModel = newProductMapping; + } + + async Task EditModelSaving(GridEditModelSavingEventArgs e) + { + if (e.IsNew) + //add new orderData to orderData array + _logger.Info("New user added to the company"); + + 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..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"; - - } - - *@ - + + *@ - + @{ - var transfer2 = (Transfer)EditFormContext.EditModel; + var transfer2 = (Company)EditFormContext.EditModel; } @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", @@ -149,23 +174,8 @@ "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; } - + private string UpdateOwnerIdText; DateTime StartDate { get; set; } = DateTime.Today; DxSchedulerDataStorage _dataStorage = new(); @@ -178,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() { @@ -204,7 +242,7 @@ { var messageModel = result as MessageWizardModel; messageModel.ContextId = _messageWizardModel.ContextId; - //messageModel.SenderId = sessionService.User.UserId; + //messageModel.SenderId = sessionService.User.UserId; string FormatEmailContent() { @@ -212,7 +250,7 @@

Dear {messageModel.SenderFullName},

-

{messageModel.Content}:

+

{messageModel.Content}:

Best regards,
Tour I Am team

"; @@ -227,43 +265,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) @@ -311,7 +332,8 @@ async Task UpdateDataAsync() { - ServiceProviderDataList = await serviceProviderDataService.GetPropertiesByOwnerIdAsync(sessionService.User.UserId); + ServiceProviderDataList = await serviceProviderDataService.GetServiceProvidersAsync(); + //StateHasChanged(); _logger.Info("orderData grid refreshed"); } @@ -319,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/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 +