diff --git a/TIAM.Database/DataLayers/Admins/AdminDal.cs b/TIAM.Database/DataLayers/Admins/AdminDal.cs index d36256e2..61b7fea7 100644 --- a/TIAM.Database/DataLayers/Admins/AdminDal.cs +++ b/TIAM.Database/DataLayers/Admins/AdminDal.cs @@ -200,6 +200,7 @@ namespace TIAM.Database.DataLayers.Admins public Task> GetEmailMessagesBySenderEmailAddressAsync(string emailAddress) => SessionAsync(ctx => ctx.GetEmailMessagesBySenderEmailAddress(emailAddress).ToList()); public Task> GetEmailMessagesAsync(Guid userId, Guid userProductMappingId) => SessionAsync(ctx => ctx.GetEmailMessages(userId, userProductMappingId).ToList()); public Task> GetEmailMessagesAsync(Guid contextId, Guid userId, Guid userProductMappingId) => SessionAsync(ctx => ctx.GetEmailMessages(contextId, userId, userProductMappingId).ToList()); + public Task> GetAllEmailMessagesAsync() => SessionAsync(ctx => ctx.GetAllEmailMessages().ToList()); public Task AddEmailMessageAsync(EmailMessage emailMessage) diff --git a/TIAM.Services/SignalRTags.cs b/TIAM.Services/SignalRTags.cs index d3e47a7c..398b13a0 100644 --- a/TIAM.Services/SignalRTags.cs +++ b/TIAM.Services/SignalRTags.cs @@ -50,4 +50,7 @@ public class SignalRTags : AcSignalRTags public const int CreateCar = 51; public const int UpdateCar = 52; public const int DeleteCar = 53; + + public const int GetMessagesByContextId = 60; + public const int GetAllMessages = 61; } diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor index dad07555..08540145 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor @@ -149,6 +149,11 @@ + + + + + diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor index 7835f075..47a17fed 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor @@ -97,7 +97,7 @@ - + diff --git a/TIAMSharedUI/Shared/Components/Grids/MessageDetailGrid.cs b/TIAMSharedUI/Shared/Components/Grids/MessageDetailGrid.cs new file mode 100644 index 00000000..c179659e --- /dev/null +++ b/TIAMSharedUI/Shared/Components/Grids/MessageDetailGrid.cs @@ -0,0 +1,17 @@ +using Microsoft.AspNetCore.Components; + +namespace TIAMSharedUI.Shared.Components.Grids; + +public class MessageDetailGrid : MessageGrid +{ + protected override Task SetParametersAsyncCore(ParameterView parameters) + { + var isFirst = IsFirstInitializeParameters; + + return base.SetParametersAsyncCore(parameters); + + if (isFirst) + { + } + } +} \ No newline at end of file diff --git a/TIAMSharedUI/Shared/Components/Grids/MessageGrid.cs b/TIAMSharedUI/Shared/Components/Grids/MessageGrid.cs new file mode 100644 index 00000000..0163ff33 --- /dev/null +++ b/TIAMSharedUI/Shared/Components/Grids/MessageGrid.cs @@ -0,0 +1,32 @@ +using Microsoft.AspNetCore.Components; +using TIAM.Entities.Addresses; +using TIAM.Entities.Emails; +using TIAM.Entities.Transfers; +using TIAM.Services; + +namespace TIAMSharedUI.Shared.Components.Grids; + +public class MessageGrid : TiamGrid +{ + public MessageGrid() : base() + { + GetAllMessageTag = SignalRTags.GetMessagesByContextId; + //AddMessageTag = SignalRTags.AddAddress; + //UpdateMessageTag = SignalRTags.UpdateAddress; + //RemoveMessageTag = SignalRTags.RemoveAddress; - nem törlünk címet - J. + } + + protected override Task SetParametersAsyncCore(ParameterView parameters) + { + if (!IsFirstInitializeParameters) + { + //ShowFilterRow = true; + //ShowGroupPanel = true; + //AllowSort = false; + + //etc... + } + + return base.SetParametersAsyncCore(parameters); + } +} \ No newline at end of file diff --git a/TIAMWebApp/Server/Controllers/MessageAPIController.cs b/TIAMWebApp/Server/Controllers/MessageAPIController.cs index c7506c16..c8a6d0db 100644 --- a/TIAMWebApp/Server/Controllers/MessageAPIController.cs +++ b/TIAMWebApp/Server/Controllers/MessageAPIController.cs @@ -8,6 +8,10 @@ using TIAMWebApp.Shared.Application.Models.ClientSide.Messages; using AyCode.Models.Enums; using TIAM.Database.DataLayers.Admins; using TIAM.Entities.Emails; +using AyCode.Services.SignalRs; +using TIAM.Services; +using AyCode.Core.Loggers; +using AyCode.Core.Extensions; namespace TIAMWebApp.Server.Controllers { @@ -17,17 +21,18 @@ namespace TIAMWebApp.Server.Controllers public class MessageAPIController : ControllerBase { private AdminDal _adminDal; + private readonly TIAM.Core.Loggers.ILogger _logger; private readonly IConfiguration _configuration; private readonly IWebHostEnvironment _webHostEnvironment; private IMessageSenderService _messageSenderService; - private readonly ILogger _logger; + - public MessageAPIController(ILogger logger, IConfiguration configuration, IWebHostEnvironment webHostEnvironment, IMessageSenderService messageSenderService, AdminDal adminDal) + public MessageAPIController(IEnumerable logWriters, IConfiguration configuration, IWebHostEnvironment webHostEnvironment, IMessageSenderService messageSenderService, AdminDal adminDal) { _adminDal = adminDal; - _logger = logger; + _logger = new TIAM.Core.Loggers.Logger(logWriters.ToArray()); _configuration = configuration; _webHostEnvironment = webHostEnvironment; @@ -71,5 +76,37 @@ namespace TIAMWebApp.Server.Controllers } + [AllowAnonymous] + [HttpGet] + [Route(APIUrls.GetMessagesByContextIdRouteName + "/{contextId}")] + [Tags("Finished", "Messages")] + [SignalR(SignalRTags.GetMessagesByContextId)] + public async Task GetMessagesByContextId(Guid contextId) + { + _logger.Info($@"GetMessagessByContextId called with ownerId: {contextId}"); + + + var messages = _adminDal.GetEmailMessagesByContextIdAsync(contextId); + //put Company id and name into a dictionary + + return messages.ToJson(); + } + + [AllowAnonymous] + [HttpGet] + [Route(APIUrls.GetAllMessagesRouteName)] + [Tags("Finished", "Messages")] + [SignalR(SignalRTags.GetAllMessages)] + public async Task GetAllMessages() + { + _logger.Info($@"GetMessages called"); + + + var messages = await _adminDal.GetAllEmailMessagesAsync(); + //put Company id and name into a dictionary + + return messages.ToJson(); + } + } } \ No newline at end of file diff --git a/TIAMWebApp/Server/Program.cs b/TIAMWebApp/Server/Program.cs index adeccf3f..353fa1f1 100644 --- a/TIAMWebApp/Server/Program.cs +++ b/TIAMWebApp/Server/Program.cs @@ -39,6 +39,7 @@ builder.Services.AddScoped(); builder.Services.AddSingleton(); builder.Services.AddScoped(); builder.Services.AddScoped(); +builder.Services.AddScoped(); builder.Services.AddSignalR(options => options.MaximumReceiveMessageSize = 128 * 1024);//.AddMessagePackProtocol(options => options.SerializerOptions = MessagePackSerializerOptions.Standard.WithSecurity(MessagePackSecurity.UntrustedData)); diff --git a/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs b/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs index be43655d..cee80165 100644 --- a/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs +++ b/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs @@ -79,16 +79,17 @@ public class DevAdminSignalRHub : Hub, IAcSignalRHubServe private readonly ServiceProviderAPIController _serviceProviderApiController; private readonly TransferDataAPIController _transferDataApiController; - public DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController serviceProviderApiController, TransferDataAPIController transferDataApiController, IEnumerable logWriters) + public DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController serviceProviderApiController, TransferDataAPIController transferDataApiController, IEnumerable logWriters, MessageAPIController messageApiController) { _adminDal = adminDal; _serviceProviderApiController = serviceProviderApiController; - _transferDataApiController = transferDataApiController; + _transferDataApiController = transferDataApiController; _logger = new(logWriters.ToArray()); _dynamicMethodCallModels.Add(new DynamicMethodCallModel(serviceProviderApiController)); _dynamicMethodCallModels.Add(new DynamicMethodCallModel(transferDataApiController)); + _dynamicMethodCallModels.Add(new DynamicMethodCallModel(messageApiController)); } diff --git a/TIAMWebApp/Shared/Interfaces/IClientNoticeSenderService.cs b/TIAMWebApp/Shared/Interfaces/IClientNoticeSenderService.cs index bc4ff2d5..6b60a393 100644 --- a/TIAMWebApp/Shared/Interfaces/IClientNoticeSenderService.cs +++ b/TIAMWebApp/Shared/Interfaces/IClientNoticeSenderService.cs @@ -4,7 +4,11 @@ namespace TIAMWebApp.Shared.Application.Interfaces { public interface IClientNoticeSenderService { + + public Task> GetAllMessagesAsync(); + public Task> GetMessagesByContextIdAsync(); public Task SendNoticeAsync(TNotice message, int messageType) where TNotice : EmailMessage; + } } diff --git a/TIAMWebApp/Shared/Models/APIUrls.cs b/TIAMWebApp/Shared/Models/APIUrls.cs index f850dbc7..33a8ac34 100644 --- a/TIAMWebApp/Shared/Models/APIUrls.cs +++ b/TIAMWebApp/Shared/Models/APIUrls.cs @@ -188,6 +188,10 @@ namespace TIAMWebApp.Shared.Application.Models //email public const string SendEmailRouteName = "SendEmail"; public const string SendEmail = MessageAPI+SendEmailRouteName; + public const string GetAllMessagesRouteName = "GetAllMessages"; + public const string GetAllMessages = MessageAPI+GetAllMessagesRouteName; + public const string GetMessagesByContextIdRouteName = "GetMessagesByContextId"; + public const string GetMessagesByContextId = MessageAPI+GetMessagesByContextIdRouteName; //payment public const string CreatePaymentRouteName = "CreatePayment"; diff --git a/TIAMWebApp/Shared/Services/ClientNoticeSenderService.cs b/TIAMWebApp/Shared/Services/ClientNoticeSenderService.cs index a7702f45..ffd93343 100644 --- a/TIAMWebApp/Shared/Services/ClientNoticeSenderService.cs +++ b/TIAMWebApp/Shared/Services/ClientNoticeSenderService.cs @@ -17,6 +17,16 @@ namespace TIAMWebApp.Shared.Application.Services this.http = http; } + public async Task> GetAllMessagesAsync() + { + throw new NotImplementedException(); + } + + public async Task> GetMessagesByContextIdAsync() + { + throw new NotImplementedException(); + } + public async Task SendNoticeAsync(TNotice message, int messageType) where TNotice : TIAM.Entities.Emails.EmailMessage { var url = $"{Setting.ApiBaseUrl}/{APIUrls.SendEmail}";