From ac4ff71683057bdebb3d1742363db123df294db5 Mon Sep 17 00:00:00 2001 From: Loretta Date: Fri, 16 Aug 2024 17:01:13 +0200 Subject: [PATCH] Messages improvements, fixes, etc... --- TIAM.Database/DataLayers/Admins/AdminDal.cs | 12 ++++- TIAM.Services/SignalRTags.cs | 7 +-- .../User/Drivers/DriverManageTransfers.razor | 3 -- TIAMSharedUI/Pages/User/Messages.razor | 44 ++++++++++++++++--- .../MessageDetailGridComponent.razor | 11 ++--- .../Controllers/MessageAPIController.cs | 10 +++++ .../Server/Controllers/UserAPIController.cs | 6 +-- 7 files changed, 72 insertions(+), 21 deletions(-) diff --git a/TIAM.Database/DataLayers/Admins/AdminDal.cs b/TIAM.Database/DataLayers/Admins/AdminDal.cs index 19cc139d..c110fc03 100644 --- a/TIAM.Database/DataLayers/Admins/AdminDal.cs +++ b/TIAM.Database/DataLayers/Admins/AdminDal.cs @@ -217,7 +217,7 @@ namespace TIAM.Database.DataLayers.Admins public string GetUsersJson() => Session(ctx => ctx.Users.ToJson()); public Task AddUserAsync(User user) => TransactionAsync(ctx => ctx.AddUser(user)); - public Task UpdateUserAsync(User user) => UpdateSafeAsync(user); + public Task UpdateUserAsync(User? user) => UpdateSafeAsync(user); public Task RemoveUserAsync(Guid userId) => TransactionAsync(ctx => ctx.RemoveUser(userId)); #region Product @@ -322,6 +322,14 @@ namespace TIAM.Database.DataLayers.Admins public Task> GetEmailMessagesAsync(Guid contextId, Guid userId, Guid userProductMappingId) => SessionAsync(ctx => ctx.GetEmailMessages(contextId, userId, userProductMappingId).OrderByDescending(x => x.Created).ToList()); public Task> GetAllEmailMessagesAsync() => SessionAsync(ctx => ctx.GetAllEmailMessages().OrderByDescending(x => x.Created).ToList()); + public Task> GetEmailMessagesByUserId(Guid userId) + { + return SessionAsync(ctx => + { + return ctx.GetEmailMessagesByIds(ctx.GetUserProductMappingsByUserId(userId).Select(x => x.Id).Concat([userId])).ToList(); + }); + } + /// /// /// @@ -329,7 +337,7 @@ namespace TIAM.Database.DataLayers.Admins /// public Task> GetTransfersMessagesByDriverIdAsync(Guid driverId) => SessionAsync(ctx => { - //TODO: Az upm.UserId elvben nem kell, csak amíg ne fix a db! semmilyen gondot nem okoz... - J. + //TODO: Az upm.UserId elvben nem kell, csak amíg nem fix a db! semmilyen gondot nem okoz... - J. var upm = ctx.GetUserProductMappingById(driverId); if (upm == null) return []; diff --git a/TIAM.Services/SignalRTags.cs b/TIAM.Services/SignalRTags.cs index cd59b63f..8619fb2f 100644 --- a/TIAM.Services/SignalRTags.cs +++ b/TIAM.Services/SignalRTags.cs @@ -79,9 +79,10 @@ public class SignalRTags : AcSignalRTags /// UserPropductMappingId /// public const int GetTransfersMessagesByDriverId = 62; - public const int CreateMessage = 63; - public const int UpdateMessage = 64; - public const int DeleteMessage = 65; + public const int GetMessagesByUserId = 63; + public const int CreateMessage = 64; + public const int UpdateMessage = 65; + public const int DeleteMessage = 66; public const int GetProductById = 70; public const int GetProductsByOwnerId = 71; //for now until we can send multiple parameters diff --git a/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor b/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor index acc64440..bead1e87 100644 --- a/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor +++ b/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor @@ -71,8 +71,6 @@
- -
- @* TODO: Megírni az GetMessagesByDriverId() endpoint-ot! - J. *@
diff --git a/TIAMSharedUI/Pages/User/Messages.razor b/TIAMSharedUI/Pages/User/Messages.razor index b377dde6..e4e9ecaa 100644 --- a/TIAMSharedUI/Pages/User/Messages.razor +++ b/TIAMSharedUI/Pages/User/Messages.razor @@ -1,16 +1,50 @@ -@page "/user/messages/{userId:guid}" +@page "/user/messages/{UserId:guid}" +@using AyCode.Core.Extensions +@using TIAM.Models.Dtos.Users +@using TIAM.Services +@using TIAMSharedUI.Pages.User.SysAdmins +@using TIAMWebApp.Shared.Application.Interfaces +@using TIAMWebApp.Shared.Application.Services +@inject ISessionService sessionService; +@inject AdminSignalRClient AdminSignalRClient; +@* @inject JSRuntime jsRuntime + + + *@ + +
+

Messages

+

Manage messages here!

+
- - - +
@code { - [Parameter] public Guid? userId { get; set; } + [Parameter] public Guid? UserId { get; set; } + //private List _contextParams = []; + private bool _isMobile = false; + protected override async Task OnInitializedAsync() + { + //if (userId.IsNullOrEmpty() || sessionService.User == null) return; + + // _contextParams.Add(userId); + + // var upmId = sessionService.User.UserModelDto.UserProductMappings.Select(x => x.Id).FirstOrDefault(); + // if(!upmId.IsNullOrEmpty()) _contextParams.Add(upmId); + + //_isMobile = await jsRuntime.InvokeAsync("isDevice"); + + await base.OnInitializedAsync(); + } } diff --git a/TIAMSharedUI/Pages/User/SysAdmins/MessageDetailGridComponent.razor b/TIAMSharedUI/Pages/User/SysAdmins/MessageDetailGridComponent.razor index c00dccde..dedfa063 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/MessageDetailGridComponent.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/MessageDetailGridComponent.razor @@ -29,20 +29,21 @@ GetAllMessageTag="GetAllMessageTag" ContextIds="@(ContextId.IsNullOrEmpty() ? throw new InvalidDataException($"ContextId.IsNullOrEmpty(); ContextId: {ContextId}") : [ContextId.Value])" CustomizeElement="CustomizeElement"> - - - + + + - + + @System.Text.RegularExpressions.Regex.Replace((displayTextContext.Value as string)!, "<(.|\n)*?>", string.Empty) - + diff --git a/TIAMWebApp/Server/Controllers/MessageAPIController.cs b/TIAMWebApp/Server/Controllers/MessageAPIController.cs index 144be0b1..7098d5e6 100644 --- a/TIAMWebApp/Server/Controllers/MessageAPIController.cs +++ b/TIAMWebApp/Server/Controllers/MessageAPIController.cs @@ -88,6 +88,16 @@ namespace TIAMWebApp.Server.Controllers return await _adminDal.GetTransfersMessagesByDriverIdAsync(driverId); } + [NonAction] + [ApiExplorerSettings(IgnoreApi = true)] + [SignalR(SignalRTags.GetMessagesByUserId)] + public async Task> GetMessagesByUserId(Guid userId) + { + _logger.Info($@"GetMessagesByUserId called with userId: {userId}"); + + return await _adminDal.GetEmailMessagesByUserId(userId); + } + [AllowAnonymous] [HttpGet] [Route(APIUrls.GetMessagesByContextIdRouteName + "/{contextId}")] diff --git a/TIAMWebApp/Server/Controllers/UserAPIController.cs b/TIAMWebApp/Server/Controllers/UserAPIController.cs index 48055be5..efd0948a 100644 --- a/TIAMWebApp/Server/Controllers/UserAPIController.cs +++ b/TIAMWebApp/Server/Controllers/UserAPIController.cs @@ -449,9 +449,9 @@ namespace TIAMWebApp.Server.Controllers [Route(APIUrls.SendForgottenPasswordMailRouteName)] public async Task SendForgottenPasswordMail([FromBody] string email) { - User user; _logger.Info($"SendForgottenPasswordMail called with id: {email}"); - user = await userDal.GetUserByEmailAsync(email, false); + + var user = await userDal.GetUserByEmailAsync(email, false); if (user == null) { return false; @@ -554,7 +554,7 @@ namespace TIAMWebApp.Server.Controllers } [NonAction] - private async Task SetEmailConfirmedMethod(User user) + private async Task SetEmailConfirmedMethod(User? user) { user.EmailConfirmed = true; var result = await adminDal.UpdateUserAsync(user);