87 lines
4.1 KiB
Plaintext
87 lines
4.1 KiB
Plaintext
@using AyCode.Core
|
|
@using AyCode.Core.Helpers
|
|
@using TIAM.Entities.Products
|
|
@using TIAM.Entities.ServiceProviders
|
|
@using TIAM.Entities.Transfers
|
|
@using TIAM.Entities.Drivers
|
|
@using TIAM.Entities.Users
|
|
@using TIAM.Models.Dtos.Users
|
|
@using TIAMWebApp.Shared.Application.Interfaces
|
|
@using TIAMWebApp.Shared.Application.Utility
|
|
@using AyCode.Services.Loggers
|
|
@using TIAM.Core.Loggers
|
|
@using TIAM.Entities.Addresses
|
|
@using TIAMSharedUI.Shared.Components.Grids
|
|
@using TIAMSharedUI.Pages.Components.EditComponents
|
|
@using TIAMWebApp.Shared.Application.Services
|
|
@using AyCode.Interfaces.Addresses
|
|
@using TIAM.Entities.Emails
|
|
@using AyCode.Blazor.Components.Services
|
|
@using AyCode.Core.Extensions
|
|
@using TIAM.Services
|
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
|
@inject AdminSignalRClient AdminSignalRClient;
|
|
|
|
|
|
<MessageDetailGrid @ref="_messageGrid"
|
|
Logger="_logger"
|
|
SignalRClient="AdminSignalRClient"
|
|
GetAllMessageTag="GetAllMessageTag"
|
|
ContextIds="@(ContextId.IsNullOrEmpty() ? throw new InvalidDataException($"ContextId.IsNullOrEmpty(); ContextId: {ContextId}") : [ContextId.Value])"
|
|
CustomizeElement="CustomizeElement">
|
|
|
|
<Columns>
|
|
<DxGridCommandColumn Width="135" MinWidth="135" Visible="AcDomain.IsDeveloperVersion" DeleteButtonVisible="AcDomain.IsDeveloperVersion" EditButtonVisible="AcDomain.IsDeveloperVersion" FixedPosition="GridColumnFixedPosition.Left" />
|
|
<DxGridDataColumn FieldName="Id" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" DisplayFormat="N" />
|
|
<DxGridDataColumn FieldName="ContextId" Width="80px" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" DisplayFormat="N" />
|
|
<DxGridDataColumn FieldName="Created" Caption="Received" DisplayFormat="g" Width="130" SortIndex="0" SortOrder="GridColumnSortOrder.Descending" CaptionAlignment="GridTextAlignment.Center" TextAlignment="GridTextAlignment.Center" />
|
|
<DxGridDataColumn FieldName="EmailAddress" Caption="Sender" Width="200px" Visible="@IsSenderEmailVisible" />
|
|
<DxGridDataColumn FieldName="Subject" />
|
|
<DxGridDataColumn FieldName="Text" Visible="@IsMessageTextVisible">
|
|
<CellDisplayTemplate Context="displayTextContext">
|
|
<text>@System.Text.RegularExpressions.Regex.Replace((displayTextContext.Value as string)!, "<(.|\n)*?>", string.Empty)</text>
|
|
</CellDisplayTemplate>
|
|
</DxGridDataColumn>
|
|
<DxGridDataColumn FieldName="IsReaded" Caption="Readed" Visible="@IsSenderEmailVisible" Width="70" CaptionAlignment="GridTextAlignment.Center" TextAlignment="GridTextAlignment.Center" />
|
|
|
|
</Columns>
|
|
<DetailRowTemplate>
|
|
@{
|
|
var emailMessage = ((EmailMessage)context.DataItem);
|
|
<div>@((MarkupString)(emailMessage.Text ?? string.Empty))</div>
|
|
|
|
if (!emailMessage.IsReaded)
|
|
{
|
|
emailMessage.IsReaded = true;
|
|
|
|
_messageGrid.UpdateDataItemAsync(emailMessage).Forget();
|
|
//InvokeAsync(StateHasChanged).ContinueWith(x => _messageGrid.UpdateDataItemAsync(emailMessage).Forget());
|
|
}
|
|
}
|
|
</DetailRowTemplate>
|
|
</MessageDetailGrid>
|
|
|
|
@code {
|
|
[Parameter] public Guid? ContextId { get; set; }
|
|
//[Parameter] public IEmailMessageRelation ParentData { get; set; } = null!;
|
|
[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<MessageDetailGridComponent> _logger = null!;
|
|
|
|
protected override void OnInitialized()
|
|
{
|
|
_logger = new LoggerClient<MessageDetailGridComponent>(LogWriters.ToArray());
|
|
}
|
|
|
|
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;";
|
|
}
|
|
}
|