From 0662bb77a70818c63022cbf4234bbd17f22a73bf Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 29 Jul 2024 10:57:55 +0200 Subject: [PATCH] Driver history grouped by date, Hotel more clean transfer list Hotel create transfer reload button after saved last transfer Save message first then send message in email Create guest user if email is not in userDb, set referral Id fixed Some more little cleanups --- .../EditComponents/DynamicEditForm.razor | 4 +- .../User/Drivers/DriverManageTransfers.razor | 106 +++++++++++++- .../User/Hotels/CreateAndManageTransfer.razor | 65 ++++++++- .../Pages/User/Hotels/HotelComponent.razor | 26 +--- .../Pages/User/SysAdmins/ManageCars.razor | 135 ++---------------- .../Controllers/MessageAPIController.cs | 9 +- .../ServiceProviderAPIController.cs | 5 +- TIAMWebApp/Server/TIAMWebApp.Server.csproj | 3 + .../Server/{ => wwwroot}/Assets/myimage.png | Bin 9 files changed, 192 insertions(+), 161 deletions(-) rename TIAMWebApp/Server/{ => wwwroot}/Assets/myimage.png (100%) diff --git a/TIAMSharedUI/Pages/Components/EditComponents/DynamicEditForm.razor b/TIAMSharedUI/Pages/Components/EditComponents/DynamicEditForm.razor index 5924a9a7..b747716c 100644 --- a/TIAMSharedUI/Pages/Components/EditComponents/DynamicEditForm.razor +++ b/TIAMSharedUI/Pages/Components/EditComponents/DynamicEditForm.razor @@ -31,7 +31,7 @@ else

Details

- Edit + @* Create new *@
@CreateCardView() @@ -190,6 +190,8 @@ else editor.AddAttribute(j++, "Date", property.GetValue(Data)); editor.AddAttribute(j++, "DateExpression", lambda); editor.AddAttribute(j++, "CssClass", "form-field"); + editor.AddAttribute(j++, "TimeSectionVisible", true); + editor.AddAttribute(j++, "TimeSectionScrollPickerFormat", "tt h m"); editor.AddAttribute(j++, "DateChanged", EventCallback.Factory.Create(this, str => { property.SetValue(Data, str); })); editor.CloseComponent(); break; diff --git a/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor b/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor index fc2836cc..d84369a7 100644 --- a/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor +++ b/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor @@ -128,6 +128,38 @@
+ + +
+ + + + + + + + + + + + + +
+
+
@@ -143,7 +175,7 @@ [Parameter] public Guid DriverId { get; set; } private Guid driverId; private LoggerClient _logger; - + private TransferGrid _gridTransfer; private bool _popupVisible; private List? transfers = []; @@ -153,6 +185,14 @@ AccordionExpandMode ExpandMode { get; set; } = AccordionExpandMode.SingleOrNone; AccordionExpandCollapseAction ExpandCollapseAction { get; set; } = AccordionExpandCollapseAction.HeaderClick; + private MessageWizardModel _messageWizardModel = new(); + + public List AppointmentModels { get; set; } = null!; + + DateTime StartDate { get; set; } = DateTime.Today; + DxSchedulerDataStorage _dataStorage = new(); + + public List IgnoreList = [ "ReceiverEmailAddress", @@ -177,15 +217,71 @@ new(Convert.ToByte(TransferStatusType.AdminDenied), "Admin cancelled") ]; + void Grid_CustomizeElement(GridCustomizeElementEventArgs e) + { + try + { + if (e.ElementType == GridElementType.HeaderCell) + { + e.Style = "background-color: rgba(0, 0, 0, 0.08)"; + e.CssClass = "header-bold"; + } + if (e.ElementType != GridElementType.DataRow) return; - private MessageWizardModel _messageWizardModel = new(); + var transferStatus = e.Grid?.GetRowValue(e.VisibleIndex, "TransferStatusType"); + if (transferStatus == null) return; - public List AppointmentModels { get; set; } = null!; + var transferStatusByte = (byte)transferStatus; - DateTime StartDate { get; set; } = DateTime.Today; - DxSchedulerDataStorage _dataStorage = new(); + switch (transferStatusByte) + { + case 5: + e.CssClass = "bg-important"; + break; + case > 5 and < 35: + e.CssClass = "bg-attention"; + break; + case 35: + e.CssClass = "bg-finished"; + break; + case > 35: + e.CssClass = "bg-cancel"; + break; + } + } + catch (Exception ex) + { + _logger.Error($"Grid_CustomizeElement; {ex.Message}", ex); + } + } + void Grid_CustomGroup(GridCustomGroupEventArgs e) + { + if (e.FieldName == "Appointment") + { + e.SameGroup = Grid_CompareColumnValues(((DateTime)e.Value1).Date, ((DateTime)e.Value2).Date); + e.Handled = true; + } + } + bool Grid_CompareColumnValues(DateTime value1, DateTime value2) + { + if (value1 == value2) + return true; + else + return false; + } + void Grid_CustomizeGroupValueDisplayText(GridCustomizeGroupValueDisplayTextEventArgs e) + { + if (e.FieldName == "Appointment") + { + + string displayText = ((DateTime)e.Value).Date.ToString(); + e.DisplayText = displayText; + } + } + + private void RefreshComponent() { StateHasChanged(); diff --git a/TIAMSharedUI/Pages/User/Hotels/CreateAndManageTransfer.razor b/TIAMSharedUI/Pages/User/Hotels/CreateAndManageTransfer.razor index 12478896..5843717a 100644 --- a/TIAMSharedUI/Pages/User/Hotels/CreateAndManageTransfer.razor +++ b/TIAMSharedUI/Pages/User/Hotels/CreateAndManageTransfer.razor @@ -1,5 +1,8 @@ @page "/user/createAndManageTransfer" +@using AyCode.Core.Consts +@using AyCode.Core.Helpers @using TIAM.Entities.Products +@using TIAM.Entities.ServiceProviders @using TIAM.Entities.Transfers @using TIAM.Services @using TIAMSharedUI.Pages.Components.EditComponents @@ -7,6 +10,7 @@ @using AyCode.Services.Loggers @using TIAMWebApp.Shared.Application.Interfaces; @using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels +@using TIAMWebApp.Shared.Application.Models.PageModels @using TIAMWebApp.Shared.Application.Services @using TIAMWebApp.Shared.Application.Utility @layout AdminLayout @@ -15,6 +19,7 @@ @inject IUserDataService UserDataService @inject IEnumerable LogWriters @inject AdminSignalRClient _adminSignalRClient +@inject NavigationManager navManager Create transfer @@ -44,6 +49,11 @@ +
+ + Reload +
+ @@ -52,7 +62,7 @@ @code { private LoggerClient _logger; - private TransferWizardModel Data; + private TransferWizardModel Data = new(); private List Hotels = new List(); private Product SelectedHotel; public List TransferIgnorList = new List @@ -67,7 +77,7 @@ nameof(TransferWizardModel.ReferralId), nameof(TransferWizardModel.Price) }; - + private bool isReloadVisible = false; protected override void OnInitialized() { @@ -92,11 +102,60 @@ var valami = ((TransferWizardModel)result).CopyToTransfer(); valami.Id = Guid.NewGuid(); valami.ProductId = SelectedHotel.Id; + var user = await UserDataService.GetUserByEmailAsync(valami.ContactEmail); + if (user != null && user.Id != Guid.Empty) + { + //user exists already + var userDetail = await UserDataService.GetUserDetailByIdAsync(user.Id); + valami.ReferralId = userDetail.UserDto.RefferalId; + valami.UserId = userDetail.Id; + } + else + { + //create a guest user and set referralId + var registration = new RegistrationModel(); + //TODO: Refractor to userDataService + + // var random = new Random(); + // const string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; + // var password = new string(Enumerable.Repeat(chars, 10) + // .Select(s => s[random.Next(s.Length)]).ToArray()); + + var password = AcCharsGenerator.NewPassword(AcConst.MinPasswordLength, 16); + + registration.Email = valami.ContactEmail; + registration.PhoneNumber = valami.ContactPhone; + registration.Password = password; + //get list with one member! + var productOwner = await _adminSignalRClient.GetByIdAsync>(SignalRTags.GetCompaniesById, SelectedHotel.ServiceProviderId); + + registration.ReferralId = productOwner[0].AffiliateId; + + var createResult = await UserDataService.CreateGuestUser(registration); + if(createResult.isSuccess) + { + if (createResult.user != null) + { + valami.UserId = createResult.user.Id; + } + } + _logger.Info("New user created added"); + } //valami.ProductId = SessionService.User.UserId; //TODO ProductID! // await WizardProcessor.ProcessWizardAsync(result.GetType(), result); + var saveResult = await _adminSignalRClient.PostDataAsync(SignalRTags.AddTransfer, valami); - _logger.Info($"Submitted nested form: {result.GetType().FullName}, {valami.ToAddress}, {valami.FromAddress}, {valami.ProductId}"); + _logger.Info($"Submitted form: {result.GetType().FullName}, {valami.ToAddress}, {valami.FromAddress}, {valami.ProductId}"); + isReloadVisible = true; } + public void Reload() + { + Data = new TransferWizardModel(); + isReloadVisible = false; + StateHasChanged(); + } + + } diff --git a/TIAMSharedUI/Pages/User/Hotels/HotelComponent.razor b/TIAMSharedUI/Pages/User/Hotels/HotelComponent.razor index 64db4983..521288e2 100644 --- a/TIAMSharedUI/Pages/User/Hotels/HotelComponent.razor +++ b/TIAMSharedUI/Pages/User/Hotels/HotelComponent.razor @@ -102,26 +102,14 @@ } - - - + - - - - - - @{ - - TransferStatusModel keyField = Statuses.FirstOrDefault(x => x.StatusValue == (byte)context.Value)!; - string transferStatusText = keyField.StatusName; - @transferStatusText - } - - - + + + + @@ -143,9 +131,7 @@ -
-

Some conclusion

-
+