@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
@foreach (var message in messages)
{
-
@message
}
-
TicTacToe
-
phone validator
-
Create Payment
-
My transfers
-
Exchange Rate
-
Google route calculation
-
Google address validation
-
Smarty address validation
-
Google autocomplete
@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) => { };
}
}