diff --git a/TIAM.Services/SignalRTags.cs b/TIAM.Services/SignalRTags.cs index 45a42003..279e69c1 100644 --- a/TIAM.Services/SignalRTags.cs +++ b/TIAM.Services/SignalRTags.cs @@ -60,6 +60,9 @@ public class SignalRTags : AcSignalRTags public const int GetMessagesByContextId = 60; public const int GetAllMessages = 61; + public const int CreateMessage = 63; + public const int UpdateMessage = 64; + public const int DeleteMessage = 65; public const int GetProductById = 70; public const int GetProductsByOwnerId = 71; //for now until we can send multiple parameters diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor index 37294fe6..04800547 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageTransfers.razor @@ -107,35 +107,36 @@ KeyFieldName="Id"> - - + + - - @{ - var idKeyField = ((Transfer)context.DataItem).Id; - var editUri = $"mytransfers/{idKeyField:N}"; - - @context.Value - } - + + @{ + var idKeyField = ((Transfer)context.DataItem).Id; + var editUri = $"mytransfers/{idKeyField:N}"; + + @context.Value + + } + - - - - - - + + + + + + @{ var keyField = context.Value; var keyItem = (Transfer)context.DataItem; string buttonText = "Contact"; - + } - + @{ @@ -148,17 +149,14 @@ - - - - + + + - - @{ @@ -329,28 +327,30 @@ void Grid_CustomizeElement(GridCustomizeElementEventArgs e) { - if (e.ElementType == GridElementType.DataRow && (byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") == 5) - { - e.CssClass = "bg-important"; - } - else if (e.ElementType == GridElementType.DataRow && (byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") > 5 && (byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") < 35) - { - e.CssClass = "bg-attention"; - } - else if (e.ElementType == GridElementType.DataRow && (byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") == 35) - { - e.CssClass = "bg-finished"; - } - else if (e.ElementType == GridElementType.DataRow && (byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") > 35) - { - e.CssClass = "bg-cancel"; - } - if (e.ElementType == GridElementType.HeaderCell) { e.Style = "background-color: rgba(0, 0, 0, 0.08)"; e.CssClass = "header-bold"; } + + if (e.ElementType != GridElementType.DataRow) return; + + var transferStatusType = (byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType"); + switch (transferStatusType) + { + case 5: + e.CssClass = "bg-important"; + break; + case > 5 and < 35: + e.CssClass = "bg-attention"; + break; + case 35: + e.CssClass = "bg-finished"; + break; + case > 35: + e.CssClass = "bg-cancel"; + break; + } } void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e) diff --git a/TIAMSharedUI/Pages/User/SysAdmins/MessageDetailGridComponent.razor b/TIAMSharedUI/Pages/User/SysAdmins/MessageDetailGridComponent.razor index 64932a3d..0d54601b 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/MessageDetailGridComponent.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/MessageDetailGridComponent.razor @@ -1,4 +1,5 @@ @using AyCode.Core +@using AyCode.Core.Helpers @using TIAM.Entities.Products @using TIAM.Entities.ServiceProviders @using TIAM.Entities.Transfers @@ -14,9 +15,7 @@ @using TIAMSharedUI.Pages.Components.EditComponents @using TIAMWebApp.Shared.Application.Services @using AyCode.Interfaces.Addresses -@inject IServiceProviderDataService serviceProviderDataService -@inject IUserDataService userDataService -@inject ITransferDataService transferDataService +@using TIAM.Entities.Emails @inject IEnumerable LogWriters @inject AdminSignalRClient AdminSignalRClient; @@ -24,44 +23,60 @@ - - + + + - - @{ - var keyField = (string)messageContext.Value; - } -
@((MarkupString)keyField)
+ + @System.Text.RegularExpressions.Regex.Replace((displayTextContext.Value as string)!, "<(.|\n)*?>", string.Empty)
+
+ + @{ + var emailMessage = ((EmailMessage)context.DataItem); +
@((MarkupString)(emailMessage.Text ?? string.Empty))
+ if (!emailMessage.IsReaded) + { + emailMessage.IsReaded = true; + _messageGrid.UpdateDataItemAsync(emailMessage).Forget(); + + InvokeAsync(StateHasChanged).Forget(); + } + } +
@code { [Parameter] public bool KeyboardNavigationEnabled { get; set; } - [Parameter] public Guid? ContextId { get; set; } + [Parameter] public Guid ContextId { get; set; } + //[Parameter] public IEmailMessageRelation ParentData { get; set; } = null!; [Parameter] public bool IsSubjectVisible { get; set; } = true; [Parameter] public bool IsSenderEmailVisible { get; set; } = true; - private Guid? _contextId = null!; private MessageGrid _messageGrid = null!; private LoggerClient _logger = null!; protected override void OnInitialized() { _logger = new LoggerClient(LogWriters.ToArray()); - - //DataSource = new List
(); - } + private void CustomizeElement(GridCustomizeElementEventArgs e) + { + if (e.ElementType != GridElementType.DataRow) return; + + e.Style = (bool)e.Grid.GetRowValue(e.VisibleIndex, "IsReaded") == false ? "font-weight: bold;" : "font-weight: normal;"; + } } diff --git a/TIAMSharedUI/Pages/User/SysAdmins/MessageGridComponent.razor b/TIAMSharedUI/Pages/User/SysAdmins/MessageGridComponent.razor index 4bdc72b1..7ba77bd3 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/MessageGridComponent.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/MessageGridComponent.razor @@ -13,6 +13,7 @@ @using TIAMSharedUI.Pages.Components.EditComponents @using TIAMWebApp.Shared.Application.Services @using AyCode.Interfaces.Addresses +@using TIAM.Entities.Emails @inject IServiceProviderDataService serviceProviderDataService @inject IUserDataService userDataService @inject ITransferDataService transferDataService @@ -21,8 +22,7 @@ - + + @{ + @(((EmailMessage)context.DataItem).Text) + } + @code { - [Parameter] public bool KeyboardNavigationEnabled { get; set; } + [Parameter] public bool KeyboardNavigationEnabled { get; set; } - - private Guid? _contextId = null!; private MessageGrid _messageGrid = null!; private LoggerClient _logger = null!; @@ -59,7 +61,6 @@ _logger = new LoggerClient(LogWriters.ToArray()); //DataSource = new List
(); - } } \ No newline at end of file diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ProductDetailGridComponent.razor b/TIAMSharedUI/Pages/User/SysAdmins/ProductDetailGridComponent.razor index 4d449365..ece9a5bb 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ProductDetailGridComponent.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ProductDetailGridComponent.razor @@ -15,6 +15,7 @@ @using TIAMSharedUI.Pages.Components.EditComponents @using TIAMWebApp.Shared.Application.Services @using AyCode.Interfaces.Addresses +@using AyCode.Core @inject IStringLocalizer Localizer @inject IServiceProviderDataService serviceProviderDataService @inject IUserDataService userDataService @@ -40,8 +41,9 @@ ColumnResizeMode="GridColumnResizeMode.NextColumn" ShowFilterRow="true"> - - + + + diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ProfileGridComponent.razor b/TIAMSharedUI/Pages/User/SysAdmins/ProfileGridComponent.razor index 0ee05f9d..cec6a011 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ProfileGridComponent.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ProfileGridComponent.razor @@ -30,8 +30,8 @@ ColumnResizeMode="GridColumnResizeMode.NextColumn" ShowFilterRow="false"> - - + + @@ -39,14 +39,10 @@ - - - - diff --git a/TIAMSharedUI/Shared/Components/Grids/MessageGrid.cs b/TIAMSharedUI/Shared/Components/Grids/MessageGrid.cs index 0163ff33..5df217c4 100644 --- a/TIAMSharedUI/Shared/Components/Grids/MessageGrid.cs +++ b/TIAMSharedUI/Shared/Components/Grids/MessageGrid.cs @@ -11,8 +11,8 @@ public class MessageGrid : TiamGrid public MessageGrid() : base() { GetAllMessageTag = SignalRTags.GetMessagesByContextId; - //AddMessageTag = SignalRTags.AddAddress; - //UpdateMessageTag = SignalRTags.UpdateAddress; + AddMessageTag = SignalRTags.CreateMessage; + UpdateMessageTag = SignalRTags.UpdateMessage; //RemoveMessageTag = SignalRTags.RemoveAddress; - nem törlünk címet - J. } diff --git a/TIAMWebApp/Server/Controllers/MessageAPIController.cs b/TIAMWebApp/Server/Controllers/MessageAPIController.cs index b80cf82f..bea3c9a2 100644 --- a/TIAMWebApp/Server/Controllers/MessageAPIController.cs +++ b/TIAMWebApp/Server/Controllers/MessageAPIController.cs @@ -12,6 +12,7 @@ using AyCode.Services.SignalRs; using TIAM.Services; using AyCode.Core.Loggers; using AyCode.Core.Extensions; +using TIAM.Entities.Products; namespace TIAMWebApp.Server.Controllers { @@ -20,15 +21,13 @@ namespace TIAMWebApp.Server.Controllers [Route("api/v1/[controller]")] public class MessageAPIController : ControllerBase { - private AdminDal _adminDal; + private readonly AdminDal _adminDal; private readonly TIAM.Core.Loggers.ILogger _logger; private readonly IConfiguration _configuration; private readonly IWebHostEnvironment _webHostEnvironment; - private IMessageSenderService _messageSenderService; - + private readonly IMessageSenderService _messageSenderService; - public MessageAPIController(IEnumerable logWriters, IConfiguration configuration, IWebHostEnvironment webHostEnvironment, IMessageSenderService messageSenderService, AdminDal adminDal) { _adminDal = adminDal; @@ -42,38 +41,33 @@ namespace TIAMWebApp.Server.Controllers [AllowAnonymous] [HttpPost] [Route(APIUrls.SendEmailRouteName)] - public async Task SendEmail([FromBody] JsonElement SerializedMessageSenderModel) + public async Task SendEmail([FromBody] JsonElement serializedMessageSenderModel) { - Console.WriteLine("SendEmail called!"); - var message = JObject.Parse(SerializedMessageSenderModel.GetRawText()).ToObject>(); + _logger.Debug($"SendEmail called!"); + var message = JObject.Parse(serializedMessageSenderModel.GetRawText()).ToObject>(); - if (message != null) + if (message == null) return BadRequest("Invalid request"); + + if (message.MessageType == MessageTypesEnum.email) { + _logger.Debug($"EmailMessage!!!"); - if (message.MessageType == MessageTypesEnum.email) - { + var messageElement = message.Message; + _logger.Debug(message.Message.Subject); - Console.WriteLine($"EmailMessage!!!"); - var messageElement = message.Message; - Console.WriteLine(message.Message); - var result = await _messageSenderService.SendMessageAsync(messageElement, (int)message.MessageType); - //_adminDal.AddEmailMessageAsync((TIAM.Entities.Emails.EmailMessage)SerializedMessageSenderModel.Message); - messageElement.EmailAddress = "noreply@anataworld.com"; - await _adminDal.AddEmailMessageAsync(messageElement); - Console.WriteLine("SendEmail result: " + result); - return Ok(result); - - } - else - { - return BadRequest("Invalid request"); - // Access BaseClass properties - } + var result = await _messageSenderService.SendMessageAsync(messageElement, (int)message.MessageType); + //_adminDal.AddEmailMessageAsync((TIAM.Entities.Emails.EmailMessage)SerializedMessageSenderModel.Message); + messageElement.EmailAddress = "noreply@anataworld.com"; + await _adminDal.AddEmailMessageAsync(messageElement); + _logger.Debug($"SendEmail result: {result}"); + return Ok(result); + } + else + { + return BadRequest("Invalid request"); } - return BadRequest("Invalid request"); - } [AllowAnonymous] @@ -84,10 +78,8 @@ namespace TIAMWebApp.Server.Controllers public async Task GetMessagesByContextId(Guid contextId) { _logger.Info($@"GetMessagessByContextId called with ownerId: {contextId}"); - var messages = await _adminDal.GetEmailMessagesByContextIdAsync(contextId); - //put Company id and name into a dictionary return messages.ToJson(); } @@ -101,12 +93,19 @@ namespace TIAMWebApp.Server.Controllers { _logger.Info($@"GetMessages called"); - var messages = await _adminDal.GetAllEmailMessagesAsync(); - //put Company id and name into a dictionary return messages.ToJson(); } + [SignalR(SignalRTags.UpdateMessage)] + public async Task UpdateMessages([FromBody] EmailMessage message) + { + _logger.Info($@"UpdateMessages called"); + + if (await _adminDal.UpdateEmailMessageAsync(message)) return message; + + return null; + } } } \ No newline at end of file diff --git a/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs b/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs index 8057d49a..e06e9160 100644 --- a/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs +++ b/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs @@ -390,27 +390,12 @@ namespace TIAMWebApp.Server.Controllers { _logger.Info($@"GetProductsByServiceProviderId called with serviceProviderId: {serviceProviderId}"); - if (serviceProviderId != Guid.Empty) - { - var products = adminDal.GetProductsJsonByServiceProviderId(serviceProviderId); - if (products != null) - { - return await Task.FromResult(products); - } - else - { - //some Iactionresult that explains that there were errors - return await Task.FromResult(string.Empty); - } - } - else - { - //some Iactionresult that explains that there were errors - return await Task.FromResult(string.Empty); - } - + if (serviceProviderId == Guid.Empty) return await Task.FromResult(string.Empty); + var products = adminDal.GetProductsJsonByServiceProviderId(serviceProviderId); + return await Task.FromResult(products); } + [AllowAnonymous] [HttpPost] [Route(APIUrls.GetProductsByServiceProviderIdRouteName)] @@ -424,13 +409,9 @@ namespace TIAMWebApp.Server.Controllers { return await Task.FromResult("Invalid request"); } - else - { - var result = await GetProductsByOwnerId(serviceProviderId); - return result; - - } + var result = await GetProductsByOwnerId(serviceProviderId); + return result; } [AllowAnonymous] @@ -450,7 +431,6 @@ namespace TIAMWebApp.Server.Controllers { return null; } - } [AllowAnonymous]