@page "/chat" @using Microsoft.AspNetCore.Authorization @using TIAM.Entities.Users @using TIAMSharedUI.Pages.Components.EditComponents @using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels @using TIAMWebApp.Shared.Application.Services @using TIAMSharedUI.Pages.Components @inject SignalRService SignalRService @attribute [Authorize]

Chat

Chat

    @foreach (var message in messages) {
  • }
@code { private string userName; private string newMessage; private List messages = new List(); //private string hrefString = "mytransfers/" + "108E5A63-AA9E-47BE-ACFA-00306FFC5215"; private MessageWizardModel Data; public List IgnoreList = [ nameof(MessageWizardModel.ReceiverEmailAddress), nameof(MessageWizardModel.ReceiverFullName), nameof(MessageWizardModel.ReceiverId), nameof(MessageWizardModel.SenderEmailAddress), nameof(MessageWizardModel.SenderFullName), nameof(MessageWizardModel.SenderId), nameof(MessageWizardModel.ContextId) ]; protected override async Task OnInitializedAsync() { userName = Guid.NewGuid().ToString(); Data = new MessageWizardModel(); SignalRService.OnMessageReceived += (user, message) => { messages.Add($"{user}: {message}"); InvokeAsync(StateHasChanged); }; SignalRService.OnUserMuted += (user) => { messages.Add($"{user} has been muted."); InvokeAsync(StateHasChanged); }; SignalRService.OnUserLoggedIn += (user) => { messages.Add($"{user} has logged in."); InvokeAsync(StateHasChanged); }; SignalRService.OnUserLoggedOut += (user) => { messages.Add($"{user} has logged out."); InvokeAsync(StateHasChanged); }; await SignalRService.StartConnection(userName); } private async Task SendMessage() { await SignalRService.SendMessage(userName, newMessage); newMessage = string.Empty; } private async Task MuteChat() { await SignalRService.MuteChat(userName); } private async Task LoggedInToChat() { await SignalRService.LoggedInToChat(userName); } private async Task LoggedOutFromChat() { await SignalRService.LoggedOutFromChat(userName); } public void Dispose() { SignalRService.OnMessageReceived -= (user, message) => { }; SignalRService.OnUserMuted -= (user) => { }; SignalRService.OnUserLoggedIn -= (user) => { }; LoggedOutFromChat(); SignalRService.OnUserLoggedOut -= (user) => { }; } }