fix plus logger to admin

This commit is contained in:
Adam 2024-05-20 17:25:06 +02:00
parent 3140c1bed6
commit fcf48f1cce
5 changed files with 142 additions and 32 deletions

View File

@ -50,7 +50,6 @@ namespace TIAM.Services.Server
if (!message.SenderId.HasValue) return HttpStatusCode.BadRequest; if (!message.SenderId.HasValue) return HttpStatusCode.BadRequest;
var senderUser = adminDal.GetUserById(message.SenderId.Value); var senderUser = adminDal.GetUserById(message.SenderId.Value);
//var receiverUser = adminDal.Context.Users.FirstOrDefault(x => x.Id == message.ReceiverId);
if (senderUser != null) return HttpStatusCode.BadRequest; if (senderUser != null) return HttpStatusCode.BadRequest;
@ -68,23 +67,35 @@ namespace TIAM.Services.Server
from = new EmailAddress(message.EmailAddress, senderUser.Profile.Name); from = new EmailAddress(message.EmailAddress, senderUser.Profile.Name);
} }
List<Task<Response>> sendTasks = new List<Task<Response>>(); Response[] responses = [];
foreach (var messageRecipient in message.Recipients)
try
{ {
var to = new EmailAddress(messageRecipient.EmailAddress, messageRecipient.EmailAddress); List<Task<Response>> sendTasks = new List<Task<Response>>();
foreach (var messageRecipient in message.Recipients)
{
var to = new EmailAddress(messageRecipient.EmailAddress, messageRecipient.EmailAddress);
Console.WriteLine($"Message recipient: {messageRecipient.EmailAddress}"); Console.WriteLine($"Message recipient: {messageRecipient.EmailAddress}");
var plainTextContent = message.Text; var plainTextContent = message.Text;
var msg = MailHelper.CreateSingleEmail(from, to, message.Subject, plainTextContent, plainTextContent); //MailHelper.CreateSingleEmailToMultipleRecipients()
sendTasks.Add(client.SendEmailAsync(msg)); var msg = MailHelper.CreateSingleEmail(from, to, message.Subject, plainTextContent, plainTextContent);
//msg.AddBccs()
sendTasks.Add(client.SendEmailAsync(msg));
}
responses = await Task.WhenAll(sendTasks).ConfigureAwait(false);
foreach (var response in responses)
{
Console.WriteLine($"{response.StatusCode}, {response.Body.ReadAsStringAsync()}");
}
adminDal.AddEmailMessageAsync(message).Forget();
} }
catch(Exception ex)
var responses = await Task.WhenAll(sendTasks).ConfigureAwait(false);
foreach (var response in responses)
{ {
Console.WriteLine($"{response.StatusCode}, {response.Body.ReadAsStringAsync()}");
} }
if (responses.Any(response => !response.IsSuccessStatusCode)) if (responses.Any(response => !response.IsSuccessStatusCode))

View File

@ -41,7 +41,7 @@
Closing="EulaPopupClosing" Closing="EulaPopupClosing"
Closed="EulaPopupClosed"> Closed="EulaPopupClosed">
<BodyContentTemplate> <BodyContentTemplate>
<InputWizard Data=@MessageWizardModel <InputWizard Data=@_messageWizardModel
OnSubmit="SubmitForm" OnSubmit="SubmitForm"
IgnoreReflection=@IgnoreList IgnoreReflection=@IgnoreList
TitleResourceString="NewMessage" TitleResourceString="NewMessage"
@ -214,8 +214,8 @@
"SenderEmailAddress", "SenderEmailAddress",
"SenderFullName", "SenderFullName",
"SenderId", "SenderId",
"ContextId" "ContextId",
}; ];
public List<TransferStatusModel> Statuses { get; set; } = public List<TransferStatusModel> Statuses { get; set; } =
[ [
@ -230,7 +230,7 @@
new(Convert.ToInt16(TransferStatusType.AdminDenied), "Admin cancelled") new(Convert.ToInt16(TransferStatusType.AdminDenied), "Admin cancelled")
]; ];
public MessageWizardModel MessageWizardModel = new(); private MessageWizardModel _messageWizardModel = new();
public List<AppointmentModel> AppointmentModels { get; set; } public List<AppointmentModel> AppointmentModels { get; set; }
@ -242,8 +242,9 @@
{ {
_logger.Info($"Sending mail to {item.ContactEmail}, {item.Id}"); _logger.Info($"Sending mail to {item.ContactEmail}, {item.Id}");
MessageWizardModel.ContextId = item.Id; _messageWizardModel.ContextId = item.Id;
MessageWizardModel.SenderFullName = item.FullName; //Miért nullable a FullName? - J. _messageWizardModel.ReceiverEmailAddress = item.ContactEmail;
_messageWizardModel.ReceiverFullName = item.FullName;
PopupVisible = true; PopupVisible = true;
} }
@ -260,7 +261,7 @@
void EulaPopupClosing(PopupClosingEventArgs args) void EulaPopupClosing(PopupClosingEventArgs args)
{ {
//myModel = new TransferWizardModel(); //myModel = new TransferWizardModel();
MessageWizardModel = new MessageWizardModel(); _messageWizardModel = new MessageWizardModel();
} }
//----------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------
@ -269,7 +270,7 @@
public async Task SubmitForm(object result) public async Task SubmitForm(object result)
{ {
var messageModel = result as MessageWizardModel; var messageModel = result as MessageWizardModel;
messageModel.ContextId = MessageWizardModel.ContextId; messageModel.ContextId = _messageWizardModel.ContextId;
//messageModel.SenderId = sessionService.User.UserId; //messageModel.SenderId = sessionService.User.UserId;
string FormatEmailContent() string FormatEmailContent()
@ -452,3 +453,7 @@
}

View File

@ -1,10 +1,32 @@
@inherits LayoutComponentBase @inherits LayoutComponentBase
@using TIAMSharedUI.Shared.Users @using TIAMSharedUI.Shared.Users
@using AyCode.Core.Extensions
@using AyCode.Interfaces.StorageHandlers;
@using AyCode.Services.Loggers
@using Newtonsoft.Json;
@using TIAMSharedUI.Pages
@using TIAMSharedUI.Shared.Components
@using TIAMWebApp.Shared.Application.Interfaces @using TIAMWebApp.Shared.Application.Interfaces
@using TIAMWebApp.Shared.Application.Models.ClientSide;
@using AyCode.Blazor.Components;
@using TIAMWebApp.Shared.Application.Models; @using TIAMWebApp.Shared.Application.Models;
@inject NavigationManager NavigationManager @using TIAMWebApp.Shared.Application.Utility;
@using System.IdentityModel.Tokens.Jwt;
@using System.Runtime.CompilerServices
@using TIAM.Core.Loggers;
@using System.Diagnostics
@using AyCode.Utils.Extensions
@inject NavigationManager NavManager
@inject IJSRuntime jsRuntime
@inject ISecureStorageHandler SecureStorageHandler
@inject ISessionService sessionService
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
@inject IUserDataService userDataService @inject IUserDataService userDataService
<div class="page"> <div class="page">
<TiamErrorBoundaryComponent OnError="HandleError">
<div class="my-sidebar"> <div class="my-sidebar">
<AdminNavMenu /> <AdminNavMenu />
@ -17,21 +39,58 @@
@Body @Body
</article> </article>
</main> </main>
</TiamErrorBoundaryComponent>
</div> </div>
@code { @code {
/*bool isUserLoggedIn; private ILogger _logger;
int userType = 0;
protected override async Task OnInitializedAsync() public PopupMessageBox PopupMessageBox { get; private set; } = default!;
protected override void OnInitialized()
{ {
var user = await userDataService.IsLoggedInAsync(); _logger = new LoggerClient<MainLayout>(LogWriters.ToArray());
isUserLoggedIn = user.IsLoggedIn;
if (!isUserLoggedIn) base.OnInitialized();
}
private void HandleError(Exception exception)//, [CallerMemberName] string? memberName = null)
{
exception.GetCategoryAndMemberNameFromStackTraceString(out var memberName, out var categoryName);
if (memberName.IsNullOrWhiteSpace()) memberName = "..."; //ne "HandleError" memberName-el logoljunk! - J.
try
{ {
NavigationManager.NavigateTo("/login"); _logger.Error($"An error occurred: {exception.Message}", exception, categoryName, memberName);
} }
}*/ catch (Exception loggerException)
{
jsRuntime.InvokeVoidAsync("console.error", $"{nameof(MainLayout)}->HandleError; Logger error! {loggerException}");
jsRuntime.InvokeVoidAsync("console.error", $"{nameof(MainLayout)}->{memberName}; An error occurred: {exception}");
//jsRuntime.InvokeVoidAsync("console.warn", $"{nameof(MainLayout)}->{memberName}; Error details: {exception.StackTrace}");
}
// Log the error to server
//LogErrorToServer(exception);
// Show a notification on UI
ShowErrorNotification("An unexpected error occurred. Please try again later.");
//jsRuntime.InvokeVoidAsync("console.error", $"An error occurred: {exception.Message}");
//jsRuntime.InvokeVoidAsync("console.warn", $"Error details: {exception.StackTrace}");
}
// private void LogErrorToServer(Exception exception)
// {
// //_logger.Error($"An error occurred: {exception.Message}");
// }
private void ShowErrorNotification(string message)
{
jsRuntime.InvokeVoidAsync("alert", message);
}
} }

View File

@ -173,6 +173,7 @@ app.MapRazorPages();
app.MapControllers(); app.MapControllers();
app.MapBlazorHub(); app.MapBlazorHub();
app.MapHub<SignalRHub>("/myhub"); app.MapHub<SignalRHub>("/myhub");
app.MapHub<DevAdminSignalRHub>("/adminhub");
app.MapFallbackToFile("index.html"); app.MapFallbackToFile("index.html");
app.Run(); app.Run();

View File

@ -0,0 +1,34 @@
using Microsoft.AspNetCore.SignalR;
namespace TIAMWebApp.Server.Services;
public class DevAdminSignalRHub : Hub
{
public async Task SendMessage(string user, string message)
{
await Clients.All.SendAsync("ReceiveMessage", user, message);
}
public async Task MuteChat(string user)
{
await Clients.All.SendAsync("UserMuted", user);
}
public async Task LoggedInToChat(string user)
{
await Clients.All.SendAsync("UserLoggedInToChat", user);
}
public async Task LoggedOutFromChat(string user)
{
await Clients.All.SendAsync("UserLoggedOutFromChat", user);
}
}