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>> 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>> GetAllEmailMessagesAsync() => SessionAsync(ctx => ctx.GetAllEmailMessages<EmailMessage, EmailRecipient>().ToList());
public Task<bool> AddEmailMessageAsync(EmailMessage emailMessage)

View File

@ -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;
}

View File

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

View File

@ -97,7 +97,7 @@
<DetailRowTemplate>
<DxTabs>
<DxTabPage Text="Address">
<AddressGridComponent AddressContext="(UserModelDtoDetail)context.DataItem" ContextIdType="userdetailprofile" KeyboardNavigationEnabled="true" />
<AddressDetailGridComponent ParentData="((UserModelDtoDetail)context.DataItem).ProfileDto" KeyboardNavigationEnabled="true" />
</DxTabPage>
<DxTabPage Text="Companies owned">
<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 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<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;
_logger = logger;
_logger = new TIAM.Core.Loggers.Logger<MessageAPIController>(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<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.AddScoped<ServiceProviderAPIController>();
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));

View File

@ -79,16 +79,17 @@ public class DevAdminSignalRHub : Hub<ISignalRHubItemServer>, IAcSignalRHubServe
private readonly ServiceProviderAPIController _serviceProviderApiController;
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;
_serviceProviderApiController = serviceProviderApiController;
_transferDataApiController = transferDataApiController;
_transferDataApiController = transferDataApiController;
_logger = new(logWriters.ToArray());
_dynamicMethodCallModels.Add(new DynamicMethodCallModel<SignalRAttribute>(serviceProviderApiController));
_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 Task<List<EmailMessage>> GetAllMessagesAsync();
public Task<List<EmailMessage>> GetMessagesByContextIdAsync();
public Task<string> SendNoticeAsync<TNotice>(TNotice message, int messageType) where TNotice : EmailMessage;
}
}

View File

@ -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";

View File

@ -17,6 +17,16 @@ namespace TIAMWebApp.Shared.Application.Services
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
{
var url = $"{Setting.ApiBaseUrl}/{APIUrls.SendEmail}";