diff --git a/TIAM.Database.Test/AdminDalTest.cs b/TIAM.Database.Test/AdminDalTest.cs index 1735fd75..a915db66 100644 --- a/TIAM.Database.Test/AdminDalTest.cs +++ b/TIAM.Database.Test/AdminDalTest.cs @@ -614,7 +614,7 @@ namespace TIAM.Database.Test var userId = Guid.Parse(userIdUserProductMappingIdString[0]); var userProductMappingId = Guid.Parse(userIdUserProductMappingIdString[1]); - var emailMessages = await Dal.GetEmailMessagesAsync(userId, userProductMappingId); + var emailMessages = await Dal.GetEmailMessagesByUserIdOrUpmId(userId, userProductMappingId); Assert.IsNotNull(emailMessages); diff --git a/TIAM.Database/DataLayers/Admins/AdminDal.cs b/TIAM.Database/DataLayers/Admins/AdminDal.cs index c914f630..19cc139d 100644 --- a/TIAM.Database/DataLayers/Admins/AdminDal.cs +++ b/TIAM.Database/DataLayers/Admins/AdminDal.cs @@ -318,10 +318,28 @@ namespace TIAM.Database.DataLayers.Admins public Task> GetEmailMessagesByContextIdAsync(Guid contextId) => SessionAsync(ctx => ctx.GetEmailMessagesByContextId(contextId).OrderByDescending(x => x.Created).ToList()); public Task> GetEmailMessagesBySenderIdAsync(Guid senderId) => SessionAsync(ctx => ctx.GetEmailMessagesBySenderId(senderId).OrderByDescending(x => x.Created).ToList()); public Task> GetEmailMessagesBySenderEmailAddressAsync(string emailAddress) => SessionAsync(ctx => ctx.GetEmailMessagesBySenderEmailAddress(emailAddress).OrderByDescending(x => x.Created).ToList()); - public Task> GetEmailMessagesAsync(Guid userId, Guid userProductMappingId) => SessionAsync(ctx => ctx.GetEmailMessages(userId, userProductMappingId).OrderByDescending(x => x.Created).ToList()); + public Task> GetEmailMessagesByUserIdOrUpmId(Guid userId, Guid userProductMappingId) => SessionAsync(ctx => ctx.GetEmailMessagesByUserIdOrUpmId(userId, userProductMappingId).OrderByDescending(x => x.Created).ToList()); 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()); + /// + /// + /// + /// UserProductMappingId + /// + 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. + var upm = ctx.GetUserProductMappingById(driverId); + if (upm == null) return []; + + //return ctx.GetEmailMessages(driverId) //TODO: jövőben elég lesz a driverId is és mehet vissza ez a sor! - J. + return ctx.GetEmailMessagesByUserIdOrUpmId(upm.UserId, driverId) + .Where(emailMessage => ctx.TransferToDrivers.Any(transferToDriver => transferToDriver.TransferId == emailMessage.ContextId && transferToDriver.UserProductMappingId == driverId)) + .OrderByDescending(x => x.Created) + .ToList(); + }); + public Task AddEmailMessageAsync(EmailMessage emailMessage) => TransactionAsync(ctx => ctx.AddEmailMessage(emailMessage)); diff --git a/TIAM.Services/SignalRTags.cs b/TIAM.Services/SignalRTags.cs index 716f02f5..cd59b63f 100644 --- a/TIAM.Services/SignalRTags.cs +++ b/TIAM.Services/SignalRTags.cs @@ -75,6 +75,10 @@ public class SignalRTags : AcSignalRTags public const int GetMessagesByContextId = 60; public const int GetAllMessages = 61; + /// + /// UserPropductMappingId + /// + public const int GetTransfersMessagesByDriverId = 62; public const int CreateMessage = 63; public const int UpdateMessage = 64; public const int DeleteMessage = 65; diff --git a/TIAMSharedUI/Pages/EditTransfers.razor b/TIAMSharedUI/Pages/EditTransfers.razor index 5aa6ecba..9a29d07f 100644 --- a/TIAMSharedUI/Pages/EditTransfers.razor +++ b/TIAMSharedUI/Pages/EditTransfers.razor @@ -52,213 +52,214 @@ -@if (isLoading) +@if (_isLoading) {
- + } -else if (!string.IsNullOrEmpty(errorMessage)) +else if (!string.IsNullOrEmpty(_errorMessage)) { -
@errorMessage
+
@_errorMessage
} else { -
- - +
+ + - @if (!editMode) - { -
-
-
-
-
-
-
-
- Transfer identifier: @transfer.Id -

@transfer.ContactPhone

+ @if (!_editMode) + { +
+
+
+
+
+
+
+
+ Transfer identifier: @_transfer.Id +

@_transfer.ContactPhone

+
+
-
-
-
-
-
-

Passenger: @transfer.FullName

-

E-mail address: @transfer.ContactEmail

-
From: @transfer.FromAddress
-
To: @transfer.ToAddress
-
@transfer.Appointment.ToString("MMMM dd, yyyy")
-
@transfer.Appointment.ToString("hh:mm tt")
-

Passengers: @transfer.PassengerCount

-

Luggage: @transfer.LuggageCount

-

Flight number (optional): @transfer.FlightNumber

-
-

License plate: POX-382

-

Car looks: Silver, Toyota, Prius

-
-

Status on: @DateTime.Now.ToString("hh:mm tt"), @DateTime.Today.ToString("MMMM dd, yyyy")

+
+
+
+

Passenger: @_transfer.FullName

+

E-mail address: @_transfer.ContactEmail

+
From: @_transfer.FromAddress
+
To: @_transfer.ToAddress
+
@_transfer.Appointment.ToString("MMMM dd, yyyy")
+
@_transfer.Appointment.ToString("hh:mm tt")
+

Passengers: @_transfer.PassengerCount

+

Luggage: @_transfer.LuggageCount

+

Flight number (optional): @_transfer.FlightNumber

+
+

License plate: POX-382

+

Car looks: Silver, Toyota, Prius

+
+

Status on: @DateTime.Now.ToString("hh:mm tt"), @DateTime.Today.ToString("MMMM dd, yyyy")

+
+
+
+

EUR @_transfer.Price

+
+
+ -
-
-

EUR @transfer.Price

-
-
-
-
-
-
+ - } + } - else - { + else + { -
-
-
-
- -
-
-
-
- Transfer identifier: @transfer.Id -

- - - -

+
+
+
+
+ +
+
+
+
+ Transfer identifier: @_transfer.Id +

+ + + +

+
+
+
+
+
-
-
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

License plate: POX-382

+

Car looks: Silver, Toyota, Prius

+
+

Status on: @DateTime.Now.TimeOfDay, @DateTime.Today.Date

+
+ + +
+ + +
+

EUR @_transfer.Price via (COD)

+
+
+ + + +
+
+
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

License plate: POX-382

-

Car looks: Silver, Toyota, Prius

-
-

Status on: @DateTime.Now.TimeOfDay, @DateTime.Today.Date

-
- - -
- - -
-

EUR @transfer.Price via (COD)

-
-
- - - -
-
- +
- +
-
-
-
- } + + } -
- - - - -
+ + +
+ +
+ +
+
} @code { - [Parameter] - public Guid transferId { get; set; } = Guid.Empty; + [Parameter] public Guid transferId { get; set; } = Guid.Empty; - private Transfer transfer = new Transfer(); - private bool isLoading = true; - private string errorMessage = string.Empty; - - private LoggerClient _logger; + private Transfer _transfer = new Transfer(); + private bool _isLoading = true; + private string _errorMessage = string.Empty; + private LoggerClient _logger = null!; private MessageWizardModel _messageWizardModel = new(); private bool _popupVisible; + public List IgnoreList = [ "ReceiverEmailAddress", @@ -270,8 +271,8 @@ else "ContextId", ]; - List StatusTypes = new List(); - private bool editMode = false; + private bool _editMode = false; + private readonly List _statusTypes = []; void SendMail(Transfer item) { @@ -331,27 +332,28 @@ else private async Task Pay() { - if (transfer != null) + if (_transfer != null) { - string paymentId = ""; - if(transfer.PaymentId!=null) + var paymentId = ""; + if (_transfer.PaymentId != null) { //if we have already - paymentId = transfer.PaymentId; + paymentId = _transfer.PaymentId; } else { //if we have no paymentId yet - paymentId = await SumUpService.CreatePaymentAsync(transfer); - transfer.PaymentId = paymentId; + paymentId = await SumUpService.CreatePaymentAsync(_transfer); + _transfer.PaymentId = paymentId; //and save it to Db var resultTransfer = await UpdateTransfer(false); if (resultTransfer.PaymentId != null) { - _logger.Debug("Added paymentId to Db: "+ resultTransfer.PaymentId); + _logger.Debug("Added paymentId to Db: " + resultTransfer.PaymentId); } } - string checkoutUrl = "sumuppayment/" + paymentId; + + var checkoutUrl = "sumuppayment/" + paymentId; Console.WriteLine($"Payment Link: {paymentId}"); navigationManager.NavigateTo(checkoutUrl); } @@ -360,15 +362,15 @@ else protected override async Task OnInitializedAsync() { foreach (var t in Enum.GetValues(typeof(TransferStatusType)).OfType().ToList()) - StatusTypes.Add(t.ToString()); + _statusTypes.Add(t.ToString()); _logger = new LoggerClient(LogWriters.ToArray()); _logger.Info($"parameter: {transferId.ToString()}"); await LoadTransfer(); - if(transfer.UserId.IsNullOrEmpty()) + if (_transfer.UserId.IsNullOrEmpty()) { - await UserDataService.SetEmailConfirmed(transfer.UserId); + await UserDataService.SetEmailConfirmed(_transfer.UserId); } } @@ -380,7 +382,7 @@ else private void SetEditMode() { - editMode = true; + _editMode = true; } private async Task LoadTransfer() @@ -391,19 +393,20 @@ else if (response != null) { - transfer = response; + _transfer = response; } else { - errorMessage = $"Error loading transfer: {transfer.Id}"; + _errorMessage = $"Error loading transfer: {_transfer.Id}"; } } catch (Exception ex) { - errorMessage = $"Exception: {ex.Message}"; + _errorMessage = $"Exception: {ex.Message}"; } - isLoading = false; + + _isLoading = false; } private async Task UpdateTransferEventHandler(MouseEventArgs e, bool shouldRedirect = false) @@ -413,25 +416,26 @@ else navManager.NavigateTo("/mytransfers"); // Redirect to a list or another page after successful update } - private async Task UpdateTransfer(bool shouldRedirect = false) + private async Task UpdateTransfer(bool shouldRedirect = false) { try { - var responseTransfer = await transferDataService.UpdateTransferAsync(transfer); + var responseTransfer = await transferDataService.UpdateTransferAsync(_transfer); if (responseTransfer != null) - { + { return responseTransfer; } else { - errorMessage = $"Error updating transfer: {transfer.Id}"; + _errorMessage = $"Error updating transfer: {_transfer.Id}"; return null; } } catch (Exception ex) { - errorMessage = $"Exception: {ex.Message}"; + _errorMessage = $"Exception: {ex.Message}"; return null; } } + } diff --git a/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor b/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor index 2f3131b8..acc64440 100644 --- a/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor +++ b/TIAMSharedUI/Pages/User/Drivers/DriverManageTransfers.razor @@ -71,98 +71,105 @@
- - - - - - - @foreach (var (transfer, i) in Upcoming) - { - - - -
- -
-
-
- } -
-
-
- - - - @foreach (var (transfer, i) in Problems) - { - - - -
- -
-
-
- } -
-
-
- -
- - - - - - - - - - -
-
+ + + + + @foreach (var (transfer, i) in Upcoming) + { - -
- - + + +
+ +
+
+
+ } + + + + + + + @foreach (var (transfer, i) in Problems) + { - - - - - - - - - -
-
-
+ + +
+ +
+
+
+ } +
+
+
+ + + +
+ + + + + + + + + + +
+
+ + +
+ + + + + + + + + + + + + +
+
+ + +
+ @* TODO: Megírni az GetMessagesByDriverId() endpoint-ot! - J. *@ + +
+
+ +
-
-
@@ -276,13 +283,13 @@ { if (e.FieldName == "Appointment") { - - string displayText = ((DateTime)e.Value).Date.ToString(); + + string displayText = ((DateTime)e.Value).Date.ToString(); e.DisplayText = displayText; } } - + private void RefreshComponent() { StateHasChanged(); @@ -355,7 +362,7 @@ _logger.Info($"Submitted nested form: {result.GetType().FullName}"); } - + string GetCustomColor(TransferStatusType transferStatusType) { diff --git a/TIAMSharedUI/Pages/User/SysAdmins/MessageDetailGridComponent.razor b/TIAMSharedUI/Pages/User/SysAdmins/MessageDetailGridComponent.razor index a5f6d139..c00dccde 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/MessageDetailGridComponent.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/MessageDetailGridComponent.razor @@ -18,6 +18,7 @@ @using TIAM.Entities.Emails @using AyCode.Blazor.Components.Services @using AyCode.Core.Extensions +@using TIAM.Services @inject IEnumerable LogWriters @inject AdminSignalRClient AdminSignalRClient; @@ -25,22 +26,24 @@ - + - - - + + + + @System.Text.RegularExpressions.Regex.Replace((displayTextContext.Value as string)!, "<(.|\n)*?>", string.Empty) - - + + @{ @@ -61,9 +64,10 @@ @code { [Parameter] public Guid? ContextId { get; set; } //[Parameter] public IEmailMessageRelation ParentData { get; set; } = null!; - [Parameter] public bool IsSubjectVisible { get; set; } = true; + [Parameter] public bool IsMessageTextVisible { get; set; } = true; [Parameter] public bool IsSenderEmailVisible { get; set; } = true; + [Parameter] public int GetAllMessageTag { get; set; } = SignalRTags.GetMessagesByContextId; private MessageGrid _messageGrid = null!; private LoggerClient _logger = null!; diff --git a/TIAMWebApp/Server/Controllers/MessageAPIController.cs b/TIAMWebApp/Server/Controllers/MessageAPIController.cs index 39efbfe3..144be0b1 100644 --- a/TIAMWebApp/Server/Controllers/MessageAPIController.cs +++ b/TIAMWebApp/Server/Controllers/MessageAPIController.cs @@ -73,6 +73,21 @@ namespace TIAMWebApp.Server.Controllers } } + /// + /// + /// + /// UserPropductMappingId + /// + [NonAction] + [ApiExplorerSettings(IgnoreApi = true)] + [SignalR(SignalRTags.GetTransfersMessagesByDriverId)] + public async Task> GetTransfersMessagesByDriverId(Guid driverId) + { + _logger.Info($@"GetAllMessagesByDriverId called; driverId: {driverId}"); + + return await _adminDal.GetTransfersMessagesByDriverIdAsync(driverId); + } + [AllowAnonymous] [HttpGet] [Route(APIUrls.GetMessagesByContextIdRouteName + "/{contextId}")]