From 7e9bb7939ad28fe987634294b3413a909840614a Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 17 Aug 2024 09:43:03 +0200 Subject: [PATCH] address search fix --- .../AddressSearchAndSelectComponent.razor | 53 ++++++---- .../EditComponents/DynamicEditForm.razor | 20 +++- TIAMSharedUI/Pages/Index.razor | 4 +- .../User/Hotels/CreateAndManageTransfer.razor | 25 ++++- TIAMSharedUI/Pages/User/Messages.razor | 2 +- .../Shared/ComboboxItemSelector.razor | 100 ++++++++++++++---- TIAMSharedUI/Shared/HeroSlider.razor | 5 +- 7 files changed, 161 insertions(+), 48 deletions(-) diff --git a/TIAMSharedUI/Pages/Components/AddressSearchAndSelectComponent.razor b/TIAMSharedUI/Pages/Components/AddressSearchAndSelectComponent.razor index 1bbc65f4..11a7f9ad 100644 --- a/TIAMSharedUI/Pages/Components/AddressSearchAndSelectComponent.razor +++ b/TIAMSharedUI/Pages/Components/AddressSearchAndSelectComponent.razor @@ -2,25 +2,26 @@ @using TIAMWebApp.Shared.Application.Services @inject GooglePlacesService GooglePlacesService -

- @NullText -

+ + - - - - @if (Predictions.Count > 0) - { - - - } +@if (Predictions.Count > 0) +{ + + +} +else +{ +

No address found

+} @code { @@ -31,7 +32,21 @@ private string Address { get; set; } private List Predictions { get; set; } = new(); - private PredictionItem SelectedPrediction { get; set; } + private PredictionItem selectedPrediction { get; set; } + public PredictionItem SelectedPrediction + { + get => selectedPrediction; + set + { + SetNewDestination(value.Description); + selectedPrediction = value; + } + } + + public async Task SetNewDestination(string address) + { + await AddressChanged.InvokeAsync(address); + } private async Task OnInputChanged(ChangeEventArgs e) { @@ -48,7 +63,7 @@ } } - private class PredictionItem + public class PredictionItem { public string Description { get; set; } } diff --git a/TIAMSharedUI/Pages/Components/EditComponents/DynamicEditForm.razor b/TIAMSharedUI/Pages/Components/EditComponents/DynamicEditForm.razor index b747716c..e4a9e5ab 100644 --- a/TIAMSharedUI/Pages/Components/EditComponents/DynamicEditForm.razor +++ b/TIAMSharedUI/Pages/Components/EditComponents/DynamicEditForm.razor @@ -4,10 +4,14 @@ @using AyCode.Services.Loggers @using System.Reflection @using AyCode.Blazor.Components.Components +@using TIAM.Entities.Products @using TIAM.Entities.Transfers +@using TIAM.Models.Dtos.Users @using TIAMSharedUI.Shared +@using TIAMWebApp.Shared.Application.Interfaces @using TIAMWebApp.Shared.Application.Utility @inject IEnumerable LogWriters +@inject ISessionService _sessionService @if (isEditing) { @@ -47,6 +51,9 @@ else [Parameter] public List IgnoreReflection { get; set; } [Parameter] public EventCallback OnSubmit { get; set; } [Parameter] public bool isEditing { get; set; } = false; + [Parameter] public bool userAvailable { get; set; } + [Parameter] public UserModelDtoDetail userModelDtodetail { get; set; } + [Parameter] public Product CurrentProduct { get; set; } string _formSubmitResult = ""; private string _spinnerClass = ""; @@ -62,6 +69,12 @@ else base.OnInitialized(); } + protected override void OnParametersSet() + { + StateHasChanged(); + base.OnParametersSet(); + } + // void HandleValidSubmit() // { // FormSubmitResult = "You have been registered successfully."; @@ -237,10 +250,15 @@ else break; } else if (property.PropertyType == typeof(string) && string.Compare(attrList.CustomDataType, "TransferDestination", true) == 0) - { + { + editor.OpenComponent(j); editor.AddAttribute(j++, "TextValue", property.GetValue(Data)); editor.AddAttribute(j++, "CssClass", "form-field"); + if (CurrentProduct != null) + { + editor.AddAttribute(j++, "ProductId", CurrentProduct.Id); + } // editor.AddAttribute(j++, "ValExpression", lambda); editor.AddAttribute(j++, "OnSliderChanged", EventCallback.Factory.Create(this, result => { diff --git a/TIAMSharedUI/Pages/Index.razor b/TIAMSharedUI/Pages/Index.razor index 3be80c57..4e8dffa1 100644 --- a/TIAMSharedUI/Pages/Index.razor +++ b/TIAMSharedUI/Pages/Index.razor @@ -25,7 +25,7 @@ -
+
@@ -35,8 +35,6 @@ SubmitButtonText="ButtonSend" TitleResourceString="TransferTitle" SubtitleResourceString="TransferSubtitle"> - -
diff --git a/TIAMSharedUI/Pages/User/Hotels/CreateAndManageTransfer.razor b/TIAMSharedUI/Pages/User/Hotels/CreateAndManageTransfer.razor index b3e1c5d5..c2c6111d 100644 --- a/TIAMSharedUI/Pages/User/Hotels/CreateAndManageTransfer.razor +++ b/TIAMSharedUI/Pages/User/Hotels/CreateAndManageTransfer.razor @@ -50,7 +50,7 @@
- +
@@ -68,7 +68,20 @@ private LoggerClient _logger; private TransferWizardModel Data = new(); private List Hotels = new List(); - private Product SelectedHotel; + private Product selectedHotel { get; set; } + public Product SelectedHotel + { + get + { + return selectedHotel; + } + set + { + selectedHotel = value; + StateHasChanged(); + } + } + public List TransferIgnorList = new List { nameof(TransferWizardModel.Id), @@ -82,6 +95,7 @@ nameof(TransferWizardModel.Price) }; private bool isReloadVisible = false; + private bool SelectedHotelInitialized = false; protected override void OnInitialized() { @@ -92,7 +106,11 @@ if (SessionService.User.UserModelDto.Products.Any(x => x.ProductType == TIAM.Core.Enums.ProductType.Hotel)) { Hotels = SessionService.GetHotels(); - SelectedHotel = Hotels[0]; + if(!SelectedHotelInitialized) + { + SelectedHotel = Hotels[0]; + SelectedHotelInitialized = true; + } } } @@ -157,6 +175,7 @@ { Data = new TransferWizardModel(); isReloadVisible = false; + StateHasChanged(); } diff --git a/TIAMSharedUI/Pages/User/Messages.razor b/TIAMSharedUI/Pages/User/Messages.razor index b377dde6..bd2e25a8 100644 --- a/TIAMSharedUI/Pages/User/Messages.razor +++ b/TIAMSharedUI/Pages/User/Messages.razor @@ -3,7 +3,7 @@
- +

@userId.ToString()

diff --git a/TIAMSharedUI/Shared/ComboboxItemSelector.razor b/TIAMSharedUI/Shared/ComboboxItemSelector.razor index 12afe5bf..3f295c35 100644 --- a/TIAMSharedUI/Shared/ComboboxItemSelector.razor +++ b/TIAMSharedUI/Shared/ComboboxItemSelector.razor @@ -1,10 +1,13 @@ @using System.Linq.Expressions +@using AyCode.Core.Extensions @using AyCode.Core.Loggers @using AyCode.Services.Loggers @using TIAM.Core.Loggers +@using TIAM.Entities.Products @using TIAM.Entities.Transfers @using TIAM.Services @using TIAMSharedUI.Pages +@using TIAMSharedUI.Pages.Components @using TIAMSharedUI.Pages.User.SysAdmins @using TIAMWebApp.Shared.Application.Interfaces @using TIAMWebApp.Shared.Application.Services @@ -12,27 +15,55 @@ @inject IEnumerable LogWriters @inject AdminSignalRClient _adminSignalRClient @inject ITransferDataService TransferDataService +@using TIAMWebApp.Shared.Application.Services +@inject GooglePlacesService GooglePlacesService - - + + + + + + + + + + + + + + @* + + + + Validate Address + + +

@ValidationMessage

+
*@ + +
+
+ +

Selected address: @Address

+ + @*

@GetSelectedItemDescription()

*@ -@* +@* Destinations = new List(); public DxTextBox TextField; @@ -56,6 +89,9 @@ IEnumerable Data { get; set; } + private string Address { get; set; } + private string ValidationMessage { get; set; } + private TransferDestination _selectedDestination; public TransferDestination SelectedDestination { @@ -65,23 +101,44 @@ if (_selectedDestination != value) { _selectedDestination = value; - SetNewDestination(value); + SetNewDestination(value.AddressString!); } } } protected override void OnParametersSet() { - + // StateHasChanged(); } - + protected override async Task OnInitializedAsync() { _logger = new LoggerClient(LogWriters.ToArray()); Data = await _adminSignalRClient.GetAllAsync>(SignalRTags.GetAllTransferDestinations); + + Guid? productAddressId = Guid.Empty; + if (!ProductId.IsNullOrEmpty()) + { + var currentProduct = await _adminSignalRClient.GetByIdAsync(SignalRTags.GetProductById, ProductId); + if (currentProduct != null) + { + if (!currentProduct.Profile.AddressId.IsNullOrEmpty()) + { + productAddressId = currentProduct.Profile.AddressId; + } + } + } + _logger.Debug($"List length: {Data.Count().ToString()}"); - SelectedDestination = Data.FirstOrDefault(); + if (Data.Any(x => x.AddressId == (Guid)productAddressId)) + { + SelectedDestination = Data.Where(x => x.AddressId == (Guid)productAddressId).FirstOrDefault()!; + } + else + { + SelectedDestination = Data.FirstOrDefault(); + } } // RenderFragment GetSelectedItemDescription() // { @@ -100,9 +157,16 @@ // } - public void SetNewDestination(TransferDestination destination) + public void OnSelectedAddressChanged(string address) { - OnSliderChanged.InvokeAsync(destination.AddressString); + Address = address; + OnSliderChanged.InvokeAsync(address); + } + + public void SetNewDestination(string address) + { + Address = address; + OnSliderChanged.InvokeAsync(address); } // RenderFragment GetFieldDescription(string fieldName, object value) diff --git a/TIAMSharedUI/Shared/HeroSlider.razor b/TIAMSharedUI/Shared/HeroSlider.razor index 8da70b61..7e7cf7a5 100644 --- a/TIAMSharedUI/Shared/HeroSlider.razor +++ b/TIAMSharedUI/Shared/HeroSlider.razor @@ -1,7 +1,7 @@ @using BlazorAnimation @using TIAMWebApp.Shared.Application.Models.ClientSide.UI
- + - - +