@page "/user/users" @using BlazorAnimation @using TIAM.Core.Enums @using TIAM.Entities.Products @using TIAM.Entities.ServiceProviders @using TIAM.Entities.Transfers @using TIAM.Entities.Users @using TIAM.Models.Dtos.Profiles @using TIAM.Models.Dtos.Users @using TIAM.Resources @using TIAMSharedUI.Pages.Components @using TIAMSharedUI.Shared @using TIAMWebApp.Shared.Application.Interfaces @using TIAMWebApp.Shared.Application.Models @using TIAMWebApp.Shared.Application.Models.ClientSide.UI @using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels @using TIAMWebApp.Shared.Application.Models.ClientSide.Messages @using TIAMWebApp.Shared.Application.Models.PageModels @using TIAMWebApp.Shared.Application.Utility @layout AdminLayout @inject LogToBrowserConsole logToBrowserConsole @inject IStringLocalizer localizer @inject ISessionService sessionService @inject IWizardProcessor wizardProcessor @inject IUserDataService userDataService Transfers

User management

Manage transfers here!

@{ var keyField = context.Value; var keyItem = (UserModelDtoDetail)context.DataItem; string buttonText = "Contact"; } @{ var transfer2 = (UserModelDtoDetail)EditFormContext.EditModel; } @EditFormContext.GetEditor("UserDto.EmailAddress") @EditFormContext.GetEditor("UserDto.EmailAddress") @EditFormContext.GetEditor("UserDto.EmailConfirmed") @EditFormContext.GetEditor("UserDto.PhoneNumber") @EditFormContext.GetEditor("Profile.FirstName") @EditFormContext.GetEditor("Profile.LastName")
@code { public UserModelDtoDetail myModel = new UserModelDtoDetail(); public List? UserData { get; set; } bool PopupVisible { get; set; } IGrid? Grid { get; set; } object? MasterGridData { get; set; } bool AutoCollapseDetailRow { get; set; } public List ignoreList = new List { "ReceiverEmailAddress", "ReceiverId", "SenderEmailAddress", "SenderId", "ContextId" }; public MessageWizardModel messageWizardModel = new MessageWizardModel(); async void SendMail(UserModelDtoDetail Item) { var user = await userDataService.GetUserDetailByIdAsync(Item.Id); logToBrowserConsole.LogToBC($"Sending mail to {user.UserDto.EmailAddress}"); messageWizardModel.ReceiverId = user.Id; messageWizardModel.ReceiverEmailAddress = user.UserDto.EmailAddress; messageWizardModel.SenderId = sessionService.User.UserId; messageWizardModel.SenderEmailAddress = sessionService.User.Email; logToBrowserConsole.LogToBC($"Sending mail to {messageWizardModel.ReceiverEmailAddress} from {messageWizardModel.SenderId}"); PopupVisible = true; } void CancelCreateClick() { PopupVisible = false; } void EulaPopupClosed() { //cancel clicked } void EulaPopupClosing(PopupClosingEventArgs args) { //myModel = new TransferWizardModel(); messageWizardModel = new MessageWizardModel(); } //----------------------------------------------------------------------------------- public async Task SubmitForm(object Result) { var email = await wizardProcessor.ProcessWizardAsync(Result.GetType(), Result); logToBrowserConsole.LogToBC($"Submitted nested form: {Result.GetType().FullName}"); } void Grid_CustomizeElement(GridCustomizeElementEventArgs e) { if (e.ElementType == GridElementType.DataRow && e.VisibleIndex % 2 == 1) { e.CssClass = "bg-alt"; } if (e.ElementType == GridElementType.HeaderCell) { e.Style = "background-color: rgba(0, 0, 0, 0.08); font-style=bold"; } } void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e) { if (e.IsNew) { var userEditModel = (UserModelDtoDetail)e.EditModel; //TODO not valid cast userEditModel.Id = Guid.NewGuid(); userEditModel.UserDto = new UserDtoDetail(); userEditModel.UserDto.AffiliateId = Guid.NewGuid(); userEditModel.UserDto.EmailAddress = ""; userEditModel.UserDto.PhoneNumber = ""; userEditModel.Profile = new ProfileDto(); userEditModel.Profile.Name = "New user"; userEditModel.Products = new List(); userEditModel.ServiceProviders = new List(); userEditModel.UserProductMappings = new List(); } } async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e) { if (e.IsNew) { //add new orderData to orderData array RegistrationModel registration = new RegistrationModel(); //TODO: Refractor to userDataService Random random = new Random(); string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; string password = new string(Enumerable.Repeat(chars, 10) .Select(s => s[random.Next(s.Length)]).ToArray()); registration.Email = ((UserModelDtoDetail)e.EditModel).UserDto.EmailAddress; registration.PhoneNumber = ((UserModelDtoDetail)e.EditModel).UserDto.PhoneNumber; registration.Password = password; registration.ReferralId = null; await userDataService.CreateGuestUser(registration); logToBrowserConsole.LogToBC("New user created added"); } else { logToBrowserConsole.LogToBC("orderData updated at id " + ((UserModelDtoDetail)e.EditModel).Id); //await transferDataService.UpdateTransferAsync((TransferWizardModel)e.EditModel); //modify transferData where transferData.Id == e.EditModel.Id } //get transfer from TransferData by Id // foreach (var transferToModify in (List)TransferData) // { // myModel = (Transfer)e.EditModel; // if (transferToModify.Id == myModel.Id) // { // //transferToModify.Driver = myModel.Driver; // } // } await UpdateDataAsync(); } async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e) { //await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem); //remove orderData from orderData array logToBrowserConsole.LogToBC("orderData deleted"); //await UpdateDataAsync(); } async Task UpdateDataAsync() { //refresh grid UserData = await userDataService.GetUsersWithDetailsAsync(); logToBrowserConsole.LogToBC("orderData grid refreshed"); } protected override async Task OnInitializedAsync() { UserData = (await userDataService.GetUsersWithDetailsAsync())?.OrderBy(x => x.Profile?.Name).ToList(); base.OnInitialized(); } void ColumnChooserButton_Click() { Grid?.ShowColumnChooser(); } protected override void OnAfterRender(bool firstRender) { if (firstRender) { Grid?.ExpandDetailRow(0); } } void AutoCollapseDetailRow_Changed(bool newValue) { AutoCollapseDetailRow = newValue; if (newValue) { Grid?.BeginUpdate(); Grid?.CollapseAllDetailRows(); Grid?.ExpandDetailRow(0); Grid?.EndUpdate(); } } }