@using TIAM.Entities.Products @using TIAM.Entities.Transfers @using TIAM.Entities.Drivers @using TIAM.Entities.Users @using TIAM.Models.Dtos.Users @using TIAM.Services @using TIAMSharedUI.Shared.Components.Grids @using TIAMWebApp.Shared.Application.Interfaces @using TIAMWebApp.Shared.Application.Services @using TIAMWebApp.Shared.Application.Utility @using TIAM.Core.Loggers @using AyCode.Core.Loggers @using AyCode.Services.Loggers @using AyCode.Core @using AyCode.Core.Extensions @inject IServiceProviderDataService ServiceProviderDataService @inject IEnumerable LogWriters @inject AdminSignalRClient AdminSignalRClient @inject IWizardProcessor WizardProcessor @inject IUserDataService UserDataService

User not found, type another email please

@{ var userEmailFieldName = $"{nameof(UserProductMapping.User)}.{nameof(User.EmailAddress)}"; } @{ var productNameFieldName = $"{nameof(UserProductMapping.Product)}.{nameof(Product.Name)}"; } @{ } @{ var transfer2 = (UserProductMapping)UserEditFormContext.EditModel; } @transfer2.UserId @{ var a = UserEditFormContext.GetEditor("UserId"); } @* Select user *@ Select user @UserEditFormContext.GetEditor("Permissions") @code { [Parameter] public Guid ContextId { get; set; } [Parameter] public IProductRelation ParentData { get; set; } = null!; [Parameter] public int GetAllTag { get; set; } = SignalRTags.GetAllUserProductMappings; [Parameter] public GridDetailExpandButtonDisplayMode DetailExpandButtonDisplayMode { get; set; } = GridDetailExpandButtonDisplayMode.Never; private LoggerClient _logger; private UserProductMappingDriverGrid _driverGrid; private UserProductMapping _tempProductMapping; bool PopupVisible { get; set; } private DxMaskedInput _emailInput; private DxButton _button1; private ElementReference _errorMessage; private string _errorCss = "display: none;"; private List FoundUsers { get; set; } = new List(); private string Email { get; set; } = "email@email.com"; string EmailMask { get; set; } = @"(\w|[.-])+@(\w|-)+\.(\w|-){2,4}"; UserModelDto _chosenUser = null!; protected override void OnInitialized() { _logger = new LoggerClient(LogWriters.ToArray()); base.OnInitialized(); } void CustomizeEditModel(GridCustomizeEditModelEventArgs e) { if (!e.IsNew) return; if (ContextId.IsNullOrEmpty()) { _logger.Warning($"ContextId.IsNullOrEmpty()"); return; } var newUpm = (UserProductMapping)e.EditModel; newUpm.ProductId = ContextId; var newProductMapping = new UserProductMapping { Id = Guid.NewGuid(), ProductId = (Guid)ContextId, Permissions = 2 }; //e.EditModel = newProductMapping; } async Task FindUser() { var userModelDto = await UserDataService.GetUserByEmailAsync(Email); if (userModelDto != null) { _chosenUser = userModelDto; FoundUsers.Add(_chosenUser); _emailInput.Enabled = false; _button1.Visible = false; } else { _emailInput.Value = "email@email.com"; _errorCss = "display: block"; } } void CancelCreateClick() { PopupVisible = false; } void SelectDriverPopupClosed() { //cancel clicked } void SelectDriverPopupClosing(PopupClosingEventArgs args) { //myModel = new TransferWizardModel(); } public Task SubmitForm(object result) { _logger.Info($"Submitted nested form: {result.GetType().FullName}"); return Task.CompletedTask; } public Task ShowPopup(UserProductMapping emptyProductMapping) { _tempProductMapping = emptyProductMapping; PopupVisible = true; return Task.CompletedTask; } private async Task OnUserSelected(Guid userId) { // Logic after the user is selected await Task.Run(() => Console.WriteLine($"Selected User ID: {userId}")); } private async Task OnRowClick(GridRowClickEventArgs e) { await SelectUser((Guid)e.Grid.GetRowValue(e.VisibleIndex, "Id")); } private async Task SelectUser(Guid id) { PopupVisible = false; _tempProductMapping.UserId = id; await OnUserSelected(id); } void Grid_CustomizeElement(GridCustomizeElementEventArgs e) { if (e.ElementType == GridElementType.DataRow && (int)e.Grid.GetRowValue(e.VisibleIndex, "Permissions") == 1) { e.Style = "display: none"; } // else if (e.ElementType == GridElementType.HeaderCell) // { // e.Style = "background-color: rgba(0, 0, 0, 0.08); font-style=bold"; // } } }