From 0cbec7a91b79e48595ddf60e5c785561d1e693d8 Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 1 Aug 2024 16:18:13 +0200 Subject: [PATCH] Other fixes --- .../Pages/PublicCreateAndManageTransfer.razor | 190 ++++++++++++++++++ .../CardComponents/UserCardComponent.razor | 3 + .../Pages/User/ManageMyServiceProvider.razor | 2 +- .../Pages/User/MyServiceProviders.razor | 2 +- .../ProductDetailGridComponent.razor | 16 +- TIAMWebApp/Server/wwwroot/ExchangeRate.xml | 2 +- 6 files changed, 211 insertions(+), 4 deletions(-) create mode 100644 TIAMSharedUI/Pages/PublicCreateAndManageTransfer.razor diff --git a/TIAMSharedUI/Pages/PublicCreateAndManageTransfer.razor b/TIAMSharedUI/Pages/PublicCreateAndManageTransfer.razor new file mode 100644 index 00000000..df50869e --- /dev/null +++ b/TIAMSharedUI/Pages/PublicCreateAndManageTransfer.razor @@ -0,0 +1,190 @@ +@page "/public/transfer/{referralId:guid}/{productId:guid}" +@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 +@using TIAMSharedUI.Shared +@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 +@using AyCode.Core.Extensions +@layout AdminLayout +@inject IPopulationStructureDataProvider DataProvider +@inject ISessionService SessionService +@inject IUserDataService UserDataService +@inject IEnumerable LogWriters +@inject AdminSignalRClient _adminSignalRClient +@inject NavigationManager navManager + +Create transfer + +
+

Create transfer

+

Order a new transfer here!

+
+ + + +
+ +
+
+ + +

Partner:

+

@SelectedHotel

+ +
+ + +
+ +
+ + Reload +
+ +
+
+ +
+ + +@code { + [Parameter] public Guid referralId { get; set; } + [Parameter] public Guid productId { get; set; } + + private LoggerClient _logger; + private TransferWizardModel Data = new(); + + private Product SelectedHotel; + public List TransferIgnorList = new List + { + nameof(TransferWizardModel.Id), + nameof(TransferWizardModel.UserId), + nameof(TransferWizardModel.ProductId), + nameof(TransferWizardModel.FirstName), + nameof(TransferWizardModel.LastName), + nameof(TransferWizardModel.UserProductMappingId), + nameof(TransferWizardModel.UserProductToCarId), + nameof(TransferWizardModel.ReferralId), + nameof(TransferWizardModel.Price) + }; + private bool isReloadVisible = false; + + protected override void OnInitialized() + { + _logger = new LoggerClient(LogWriters.ToArray()); + + + + Data = new TransferWizardModel(); + base.OnInitialized(); + + } + + protected override async Task OnParametersSetAsync() + { + if(productId.IsNullOrEmpty()) + { + var result = await _adminSignalRClient.GetByIdAsync(SignalRTags.GetCompaniesById, productId); + if (result != null) + { + SelectedHotel = result; + } + else + { + SelectedHotel = null; + } + } + + if (!referralId.IsNullOrEmpty()) + { + //check if storage has some other referralId already TODO + //if not, store referralId in device for 30 days (?) + + + //check if user is logged in + if (SessionService.IsAuthenticated) + { + if (SessionService.User != null) + { + if(SessionService.User.UserModelDto.UserDto.RefferalId == null) + { + //update user referralId + } + } + } + } + + await base.OnParametersSetAsync(); + } + + public async Task SubmitForm(object result) + { + 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 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/CardComponents/UserCardComponent.razor b/TIAMSharedUI/Pages/User/CardComponents/UserCardComponent.razor index c665bc81..8537e692 100644 --- a/TIAMSharedUI/Pages/User/CardComponents/UserCardComponent.razor +++ b/TIAMSharedUI/Pages/User/CardComponents/UserCardComponent.razor @@ -33,6 +33,9 @@
+ - +
diff --git a/TIAMSharedUI/Pages/User/MyServiceProviders.razor b/TIAMSharedUI/Pages/User/MyServiceProviders.razor index d9592de4..d544dcfe 100644 --- a/TIAMSharedUI/Pages/User/MyServiceProviders.razor +++ b/TIAMSharedUI/Pages/User/MyServiceProviders.razor @@ -69,7 +69,7 @@ - + diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ProductDetailGridComponent.razor b/TIAMSharedUI/Pages/User/SysAdmins/ProductDetailGridComponent.razor index 283acc65..5f502669 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ProductDetailGridComponent.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ProductDetailGridComponent.razor @@ -45,7 +45,7 @@ - + @{ Product product = (Product)context.DataItem; @@ -61,6 +61,19 @@ + + + @* + /public/transfer/{referralId:guid}/{productId:guid} + *@ + @{ + Product product = (Product)context.DataItem; + +

@Setting.BaseUrl/public/transfer/@product.ServiceProvider.AffiliateId/@product.Id

+ + } +
+
@{ @@ -132,6 +145,7 @@ [Parameter] public EventCallback OnGridEditModelSaving { get; set; } [Parameter] public int GetAllTag { get; set; } = SignalRTags.GetProductsByOwnerId; [Parameter] public GridDetailExpandButtonDisplayMode DetailExpandButtonDisplayMode { get; set; } = GridDetailExpandButtonDisplayMode.Never; + [Parameter] public bool ShowManageButtons { get; set; } = false; private List destinations = []; diff --git a/TIAMWebApp/Server/wwwroot/ExchangeRate.xml b/TIAMWebApp/Server/wwwroot/ExchangeRate.xml index a9deb64a..382d61cb 100644 --- a/TIAMWebApp/Server/wwwroot/ExchangeRate.xml +++ b/TIAMWebApp/Server/wwwroot/ExchangeRate.xml @@ -1,4 +1,4 @@ - 380 + 390 \ No newline at end of file