@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 @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 TIAMSharedUI.Shared.Components.BaseComponents @inherits BasePageComponent @layout AdminLayout @inject IPopulationStructureDataProvider DataProvider @inject IUserDataService UserDataService @inject IEnumerable LogWriters @inject AdminSignalRClient _adminSignalRClient @inject NavigationManager navManager Create transfer

Create transfer

Order a new transfer here!

Selected Hotel:

Reload
@code { private LoggerClient _logger; private TransferWizardModel Data = new(); private List Hotels = new List(); private Product selectedHotel { get; set; } public Product SelectedHotel { get { return selectedHotel; } set { selectedHotel = value; StateHasChanged(); } } 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; private bool SelectedHotelInitialized = false; protected override void OnInitialized() { _logger = new LoggerClient(LogWriters.ToArray()); if (_sessionService.User != null) { if (_sessionService.User.UserModelDto.Products.Count() > 0) { if (_sessionService.User.UserModelDto.Products.Any(x => x.ProductType == TIAM.Core.Enums.ProductType.Hotel)) { Hotels = _sessionService.GetHotels(); if (!SelectedHotelInitialized) { SelectedHotel = Hotels[0]; SelectedHotelInitialized = true; } } } } Data = new TransferWizardModel(); base.OnInitialized(); } 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(); } }