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

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

View File

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

View File

@ -1,10 +1,32 @@
@inherits LayoutComponentBase
@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.Models.ClientSide;
@using AyCode.Blazor.Components;
@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
<div class="page">
<TiamErrorBoundaryComponent OnError="HandleError">
<div class="my-sidebar">
<AdminNavMenu />
@ -17,21 +39,58 @@
@Body
</article>
</main>
</TiamErrorBoundaryComponent>
</div>
@code {
/*bool isUserLoggedIn;
int userType = 0;
private ILogger _logger;
protected override async Task OnInitializedAsync()
public PopupMessageBox PopupMessageBox { get; private set; } = default!;
protected override void OnInitialized()
{
var user = await userDataService.IsLoggedInAsync();
isUserLoggedIn = user.IsLoggedIn;
_logger = new LoggerClient<MainLayout>(LogWriters.ToArray());
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.MapBlazorHub();
app.MapHub<SignalRHub>("/myhub");
app.MapHub<DevAdminSignalRHub>("/adminhub");
app.MapFallbackToFile("index.html");
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);
}
}