GetMessage

This commit is contained in:
Adam 2024-06-03 17:25:09 +02:00
parent 41f7f37569
commit 21502e324d
12 changed files with 121 additions and 6 deletions

View File

@ -200,6 +200,7 @@ namespace TIAM.Database.DataLayers.Admins
public Task<List<EmailMessage>> GetEmailMessagesBySenderEmailAddressAsync(string emailAddress) => SessionAsync(ctx => ctx.GetEmailMessagesBySenderEmailAddress(emailAddress).ToList()); public Task<List<EmailMessage>> GetEmailMessagesBySenderEmailAddressAsync(string emailAddress) => SessionAsync(ctx => ctx.GetEmailMessagesBySenderEmailAddress(emailAddress).ToList());
public Task<List<EmailMessage>> GetEmailMessagesAsync(Guid userId, Guid userProductMappingId) => SessionAsync(ctx => ctx.GetEmailMessages<EmailMessage, EmailRecipient>(userId, userProductMappingId).ToList()); public Task<List<EmailMessage>> GetEmailMessagesAsync(Guid userId, Guid userProductMappingId) => SessionAsync(ctx => ctx.GetEmailMessages<EmailMessage, EmailRecipient>(userId, userProductMappingId).ToList());
public Task<List<EmailMessage>> GetEmailMessagesAsync(Guid contextId, Guid userId, Guid userProductMappingId) => SessionAsync(ctx => ctx.GetEmailMessages<EmailMessage, EmailRecipient>(contextId, userId, userProductMappingId).ToList()); public Task<List<EmailMessage>> GetEmailMessagesAsync(Guid contextId, Guid userId, Guid userProductMappingId) => SessionAsync(ctx => ctx.GetEmailMessages<EmailMessage, EmailRecipient>(contextId, userId, userProductMappingId).ToList());
public Task<List<EmailMessage>> GetAllEmailMessagesAsync() => SessionAsync(ctx => ctx.GetAllEmailMessages<EmailMessage, EmailRecipient>().ToList());
public Task<bool> AddEmailMessageAsync(EmailMessage emailMessage) public Task<bool> AddEmailMessageAsync(EmailMessage emailMessage)

View File

@ -50,4 +50,7 @@ public class SignalRTags : AcSignalRTags
public const int CreateCar = 51; public const int CreateCar = 51;
public const int UpdateCar = 52; public const int UpdateCar = 52;
public const int DeleteCar = 53; public const int DeleteCar = 53;
public const int GetMessagesByContextId = 60;
public const int GetAllMessages = 61;
} }

View File

@ -149,6 +149,11 @@
<TransferToDriverGridComponent ParentData="(Transfer)context.DataItem" KeyboardNavigationEnabled="true" /> <TransferToDriverGridComponent ParentData="(Transfer)context.DataItem" KeyboardNavigationEnabled="true" />
</DxTabPage> </DxTabPage>
</DxTabs> </DxTabs>
<DxTabs>
<DxTabPage Text="Messages">
<MessageDetailGrid Logger="_logger" SignalRClient="AdminSignalRClient" ContextId="((Transfer)context.DataItem).Id"></MessageDetailGrid>
</DxTabPage>
</DxTabs>
</DetailRowTemplate> </DetailRowTemplate>
<EditFormTemplate Context="EditFormContext"> <EditFormTemplate Context="EditFormContext">

View File

@ -97,7 +97,7 @@
<DetailRowTemplate> <DetailRowTemplate>
<DxTabs> <DxTabs>
<DxTabPage Text="Address"> <DxTabPage Text="Address">
<AddressGridComponent AddressContext="(UserModelDtoDetail)context.DataItem" ContextIdType="userdetailprofile" KeyboardNavigationEnabled="true" /> <AddressDetailGridComponent ParentData="((UserModelDtoDetail)context.DataItem).ProfileDto" KeyboardNavigationEnabled="true" />
</DxTabPage> </DxTabPage>
<DxTabPage Text="Companies owned"> <DxTabPage Text="Companies owned">
<ServiceProviderGridComponent UserModelDtoDetail="(UserModelDtoDetail)context.DataItem" /> <ServiceProviderGridComponent UserModelDtoDetail="(UserModelDtoDetail)context.DataItem" />

View File

@ -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)
{
}
}
}

View File

@ -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<EmailMessage>
{
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);
}
}

View File

@ -8,6 +8,10 @@ using TIAMWebApp.Shared.Application.Models.ClientSide.Messages;
using AyCode.Models.Enums; using AyCode.Models.Enums;
using TIAM.Database.DataLayers.Admins; using TIAM.Database.DataLayers.Admins;
using TIAM.Entities.Emails; using TIAM.Entities.Emails;
using AyCode.Services.SignalRs;
using TIAM.Services;
using AyCode.Core.Loggers;
using AyCode.Core.Extensions;
namespace TIAMWebApp.Server.Controllers namespace TIAMWebApp.Server.Controllers
{ {
@ -17,17 +21,18 @@ namespace TIAMWebApp.Server.Controllers
public class MessageAPIController : ControllerBase public class MessageAPIController : ControllerBase
{ {
private AdminDal _adminDal; private AdminDal _adminDal;
private readonly TIAM.Core.Loggers.ILogger _logger;
private readonly IConfiguration _configuration; private readonly IConfiguration _configuration;
private readonly IWebHostEnvironment _webHostEnvironment; private readonly IWebHostEnvironment _webHostEnvironment;
private IMessageSenderService _messageSenderService; private IMessageSenderService _messageSenderService;
private readonly ILogger<MessageAPIController> _logger;
public MessageAPIController(ILogger<MessageAPIController> logger, IConfiguration configuration, IWebHostEnvironment webHostEnvironment, IMessageSenderService messageSenderService, AdminDal adminDal)
public MessageAPIController(IEnumerable<IAcLogWriterBase> logWriters, IConfiguration configuration, IWebHostEnvironment webHostEnvironment, IMessageSenderService messageSenderService, AdminDal adminDal)
{ {
_adminDal = adminDal; _adminDal = adminDal;
_logger = logger; _logger = new TIAM.Core.Loggers.Logger<MessageAPIController>(logWriters.ToArray());
_configuration = configuration; _configuration = configuration;
_webHostEnvironment = webHostEnvironment; _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<string> 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<string> GetAllMessages()
{
_logger.Info($@"GetMessages called");
var messages = await _adminDal.GetAllEmailMessagesAsync();
//put Company id and name into a dictionary
return messages.ToJson();
}
} }
} }

View File

@ -39,6 +39,7 @@ builder.Services.AddScoped<TransferDestinationDal>();
builder.Services.AddSingleton<AuthService>(); builder.Services.AddSingleton<AuthService>();
builder.Services.AddScoped<ServiceProviderAPIController>(); builder.Services.AddScoped<ServiceProviderAPIController>();
builder.Services.AddScoped<TransferDataAPIController>(); builder.Services.AddScoped<TransferDataAPIController>();
builder.Services.AddScoped<MessageAPIController>();
builder.Services.AddSignalR(options => options.MaximumReceiveMessageSize = 128 * 1024);//.AddMessagePackProtocol(options => options.SerializerOptions = MessagePackSerializerOptions.Standard.WithSecurity(MessagePackSecurity.UntrustedData)); builder.Services.AddSignalR(options => options.MaximumReceiveMessageSize = 128 * 1024);//.AddMessagePackProtocol(options => options.SerializerOptions = MessagePackSerializerOptions.Standard.WithSecurity(MessagePackSecurity.UntrustedData));

View File

@ -79,7 +79,7 @@ public class DevAdminSignalRHub : Hub<ISignalRHubItemServer>, IAcSignalRHubServe
private readonly ServiceProviderAPIController _serviceProviderApiController; private readonly ServiceProviderAPIController _serviceProviderApiController;
private readonly TransferDataAPIController _transferDataApiController; private readonly TransferDataAPIController _transferDataApiController;
public DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController serviceProviderApiController, TransferDataAPIController transferDataApiController, IEnumerable<IAcLogWriterBase> logWriters) public DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController serviceProviderApiController, TransferDataAPIController transferDataApiController, IEnumerable<IAcLogWriterBase> logWriters, MessageAPIController messageApiController)
{ {
_adminDal = adminDal; _adminDal = adminDal;
_serviceProviderApiController = serviceProviderApiController; _serviceProviderApiController = serviceProviderApiController;
@ -89,6 +89,7 @@ public class DevAdminSignalRHub : Hub<ISignalRHubItemServer>, IAcSignalRHubServe
_dynamicMethodCallModels.Add(new DynamicMethodCallModel<SignalRAttribute>(serviceProviderApiController)); _dynamicMethodCallModels.Add(new DynamicMethodCallModel<SignalRAttribute>(serviceProviderApiController));
_dynamicMethodCallModels.Add(new DynamicMethodCallModel<SignalRAttribute>(transferDataApiController)); _dynamicMethodCallModels.Add(new DynamicMethodCallModel<SignalRAttribute>(transferDataApiController));
_dynamicMethodCallModels.Add(new DynamicMethodCallModel<SignalRAttribute>(messageApiController));
} }

View File

@ -4,7 +4,11 @@ namespace TIAMWebApp.Shared.Application.Interfaces
{ {
public interface IClientNoticeSenderService public interface IClientNoticeSenderService
{ {
public Task<List<EmailMessage>> GetAllMessagesAsync();
public Task<List<EmailMessage>> GetMessagesByContextIdAsync();
public Task<string> SendNoticeAsync<TNotice>(TNotice message, int messageType) where TNotice : EmailMessage; public Task<string> SendNoticeAsync<TNotice>(TNotice message, int messageType) where TNotice : EmailMessage;
} }
} }

View File

@ -188,6 +188,10 @@ namespace TIAMWebApp.Shared.Application.Models
//email //email
public const string SendEmailRouteName = "SendEmail"; public const string SendEmailRouteName = "SendEmail";
public const string SendEmail = MessageAPI+SendEmailRouteName; 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 //payment
public const string CreatePaymentRouteName = "CreatePayment"; public const string CreatePaymentRouteName = "CreatePayment";

View File

@ -17,6 +17,16 @@ namespace TIAMWebApp.Shared.Application.Services
this.http = http; this.http = http;
} }
public async Task<List<EmailMessage>> GetAllMessagesAsync()
{
throw new NotImplementedException();
}
public async Task<List<EmailMessage>> GetMessagesByContextIdAsync()
{
throw new NotImplementedException();
}
public async Task<string> SendNoticeAsync<TNotice>(TNotice message, int messageType) where TNotice : TIAM.Entities.Emails.EmailMessage public async Task<string> SendNoticeAsync<TNotice>(TNotice message, int messageType) where TNotice : TIAM.Entities.Emails.EmailMessage
{ {
var url = $"{Setting.ApiBaseUrl}/{APIUrls.SendEmail}"; var url = $"{Setting.ApiBaseUrl}/{APIUrls.SendEmail}";