razor pages

This commit is contained in:
Adam 2024-06-17 11:04:11 +02:00
parent 89376ac2d4
commit b2711064b4
5 changed files with 252 additions and 20 deletions

View File

@ -1,16 +1,22 @@
@page "/mytransfers/{transferId:guid}"
@using TIAM.Entities.Transfers
@using TIAM.Resources
@using TIAMWebApp.Shared.Application.Interfaces
@using AyCode.Services.Loggers
@using TIAM.Core.Enums
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
@using TIAMWebApp.Shared.Application.Services
@using TIAMWebApp.Shared.Application.Utility
@using TIAMSharedUI.Pages.User.SysAdmins
@using TIAMSharedUI.Pages.Components
@inject HttpClient Http
@inject NavigationManager navManager
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
@inject ITransferDataService transferDataService
@inject SumupService SumUpService
@inject NavigationManager navigationManager
@inject IStringLocalizer<TIAMResources> localizer
@inject IWizardProcessor wizardProcessor
<PageTitle>Transfer details</PageTitle>
<div class="text-center m-5">
@ -18,6 +24,32 @@
<h2 style="font-size:small">Manage your transfer here</h2>
</div>
<DxPopup CssClass="popup-demo-events"
@bind-Visible="@_popupVisible"
ShowFooter="true"
CloseOnEscape="true"
CloseOnOutsideClick="false"
ShowCloseButton="false"
HeaderText="MessageBox"
Closing="EulaPopupClosing"
Closed="EulaPopupClosed">
<BodyContentTemplate>
<InputWizard Data=@_messageWizardModel
OnSubmit="SubmitForm"
IgnoreReflection=@IgnoreList
TitleResourceString="NewMessage"
SubtitleResourceString="NewMessageSubtitle"
SubmitButtonText="@localizer.GetString("ButtonSend")"></InputWizard>
</BodyContentTemplate>
<FooterContentTemplate Context="Context">
<div class="popup-demo-events-footer">
<!--DxCheckBox CssClass="popup-demo-events-checkbox" @bind-Checked="@EulaAccepted">I accept the terms of the EULA</!--DxCheckBox-->
<!--DxButton CssClass="popup-demo-events-button ms-2" RenderStyle="ButtonRenderStyle.Primary" Text="OK" Click="Context.CloseCallback" /-->
<DxButton CssClass="popup-demo-events-button ms-2" RenderStyle="ButtonRenderStyle.Secondary" Text="Cancel" Click="CancelCreateClick" />
</div>
</FooterContentTemplate>
</DxPopup>
@if (isLoading)
{
<div class="text-center m-5">
@ -33,7 +65,10 @@ else if (!string.IsNullOrEmpty(errorMessage))
}
else
{
<div class="container mt-4">
<div class="container mt-4">
<DxTabs>
<DxTabPage Text="Details">
@if (!editMode)
{
@ -203,6 +238,12 @@ else
}
</DxTabPage>
<DxTabPage Text="Messages">
<MessageDetailGridComponent ContextId="transferId" IsSenderEmailVisible="false" IsSubjectVisible="false"></MessageDetailGridComponent>
<DxButton Click="() => SendMail(transfer)" Text="Send a message" RenderStyle="ButtonRenderStyle.Primary" />
</DxTabPage>
</DxTabs>
</div>
}
@ -216,9 +257,82 @@ else
private LoggerClient<EditTransfers> _logger;
private MessageWizardModel _messageWizardModel = new();
private bool _popupVisible;
private bool _autoCollapseDetailRow;
public List<string> IgnoreList =
[
"ReceiverEmailAddress",
"ReceiverFullName",
"ReceiverId",
"SenderEmailAddress",
"SenderFullName",
"SenderId",
"ContextId",
];
List<string> StatusTypes = new List<string>();
private bool editMode = false;
void SendMail(Transfer item)
{
_logger.Info($"Sending mail to {item.ContactEmail}, {item.Id}");
_messageWizardModel.ReceiverId = item.UserId;
_messageWizardModel.ContextId = item.Id;
_messageWizardModel.SenderEmailAddress = "info@touriam.com";
_messageWizardModel.ReceiverEmailAddress = item.ContactEmail;
_messageWizardModel.ReceiverFullName = item.FullName;
_popupVisible = true;
}
void CancelCreateClick()
{
_popupVisible = false;
}
void EulaPopupClosed()
{
//cancel clicked
}
void EulaPopupClosing(PopupClosingEventArgs args)
{
//myModel = new TransferWizardModel();
_messageWizardModel = new MessageWizardModel();
}
public async Task SubmitForm(object result)
{
var messageModel = result as MessageWizardModel;
messageModel.ContextId = _messageWizardModel.ContextId;
//messageModel.SenderId = sessionService.User.UserId;
string FormatEmailContent()
{
return $@"
<html>
<body>
<p>Dear {messageModel.SenderFullName},</p>
<p>{messageModel.Content}:</p>
<p>Best regards,<br/>Tour I Am team</p>
</body>
</html>";
}
messageModel.Content = FormatEmailContent();
_logger.Info(messageModel.Content);
var email = await wizardProcessor.ProcessWizardAsync<MessageWizardModel>(result.GetType(), messageModel);
_logger.Info($"Submitted nested form: {result.GetType().FullName}");
}
private async Task Pay()
{
if (transfer != null)

View File

@ -1,6 +1,7 @@
@page "/user/transfers"
@using BlazorAnimation
@using TIAM.Core.Enums
@using TIAM.Entities.Emails
@using TIAM.Entities.Transfers
@using TIAM.Resources
@using TIAMSharedUI.Pages.Components
@ -150,26 +151,11 @@
<DxTabPage Text="Driver">
<TransferToDriverGridComponent ParentData="(Transfer)context.DataItem" KeyboardNavigationEnabled="true" />
</DxTabPage>
</DxTabs>
<DxTabs>
<DxTabPage Text="Messages">
<MessageDetailGrid
Logger="_logger"
SignalRClient="AdminSignalRClient"
ContextId="((Transfer)context.DataItem).Id"
TextWrapEnabled="true">
<Columns>
<DxGridDataColumn FieldName="Id" />
<DxGridDataColumn FieldName="ContextId" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" />
<DxGridDataColumn FieldName="EmailAddress" />
<DxGridDataColumn FieldName="Subject" />
<DxGridDataColumn FieldName="Text" />
<DxGridDataColumn FieldName="Created" />
</Columns>
</MessageDetailGrid>
<MessageDetailGridComponent ContextId="((Transfer)context.DataItem).Id" KeyboardNavigationEnabled="true" />
</DxTabPage>
</DxTabs>
</DetailRowTemplate>
<EditFormTemplate Context="EditFormContext">

View File

@ -0,0 +1,67 @@
@using AyCode.Core
@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
@inject IServiceProviderDataService serviceProviderDataService
@inject IUserDataService userDataService
@inject ITransferDataService transferDataService
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
@inject AdminSignalRClient AdminSignalRClient;
<MessageDetailGrid @ref="_messageGrid"
Logger="_logger"
SignalRClient="AdminSignalRClient"
ContextId="ContextId"
TextWrapEnabled="false">
<Columns>
<DxGridDataColumn FieldName="Id" Width="80px" Visible="false" />
<DxGridDataColumn FieldName="ContextId" Width="80px" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="false" />
<DxGridDataColumn FieldName="EmailAddress" Width="100px" Visible="@IsSenderEmailVisible" />
<DxGridDataColumn FieldName="Subject" Visible=@IsSubjectVisible />
<DxGridDataColumn FieldName="Text">
<CellDisplayTemplate Context="messageContext">
@{
var keyField = (string)messageContext.Value;
}
<div>@((MarkupString)keyField)</div>
</CellDisplayTemplate>
</DxGridDataColumn>
<DxGridDataColumn FieldName="Created" Width="100px" />
</Columns>
</MessageDetailGrid>
@code {
[Parameter] public bool KeyboardNavigationEnabled { get; set; }
[Parameter] public Guid? ContextId { get; set; }
[Parameter] public bool IsSubjectVisible { get; set; } = true;
[Parameter] public bool IsSenderEmailVisible { get; set; } = true;
private Guid? _contextId = null!;
private MessageGrid _messageGrid = null!;
private LoggerClient<MessageGridComponent> _logger = null!;
protected override void OnInitialized()
{
_logger = new LoggerClient<MessageGridComponent>(LogWriters.ToArray());
//DataSource = new List<Address>();
}
}

View File

@ -0,0 +1,65 @@
@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
@inject IServiceProviderDataService serviceProviderDataService
@inject IUserDataService userDataService
@inject ITransferDataService transferDataService
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
@inject AdminSignalRClient AdminSignalRClient;
<MessageGrid @ref="_messageGrid"
ContextId="_contextId"
Logger="_logger"
SignalRClient="AdminSignalRClient"
PageSize="5"
AutoExpandAllGroupRows="true"
KeyboardNavigationEnabled="KeyboardNavigationEnabled"
KeyFieldName="Id"
ValidationEnabled="false"
EditMode="GridEditMode.EditForm"
ColumnResizeMode="GridColumnResizeMode.NextColumn"
ShowFilterRow="false">
<Columns>
<DxGridCommandColumn NewButtonVisible="false" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
<DxGridDataColumn FieldName="Id" GroupIndex="0" />
<DxGridDataColumn FieldName="AddressText" />
<DxGridDataColumn FieldName="IsValid" Width="40" />
<DxGridDataColumn FieldName="IsHelper" Width="40" />
<DxGridDataColumn FieldName="Latitude" Width="40" />
<DxGridDataColumn FieldName="Longitude" Width="40" />
<DxGridDataColumn FieldName="Created" Width="40" />
<DxGridDataColumn FieldName="Modified" Width="40" />
</Columns>
</MessageGrid>
@code {
[Parameter] public bool KeyboardNavigationEnabled { get; set; }
private Guid? _contextId = null!;
private MessageGrid _messageGrid = null!;
private LoggerClient<MessageGridComponent> _logger = null!;
protected override void OnInitialized()
{
_logger = new LoggerClient<MessageGridComponent>(LogWriters.ToArray());
//DataSource = new List<Address>();
}
}

View File

@ -267,7 +267,7 @@ namespace TIAMWebApp.Server.Controllers
<p>{transfer.FullName}</p>
<p>{transfer.PassengerCount}</p>
<p>Please confirm the transfer by clicking on the following link:</p>
<p><a href=""https://www.touriam.com/mytransfer?{transfer.Id}"">Confirm Transfer</a></p>
<p><a href=""{Setting.BaseUrl}/mytransfers/{transfer.Id}"">Confirm Transfer</a></p>
<p>If you did not request this transfer, please disregard this email.</p>
<p>Thank you,<br/>Tour I Am team</p>
</body>
@ -356,7 +356,7 @@ namespace TIAMWebApp.Server.Controllers
<p>{createdTransfer.FullName}</p>
<p>{createdTransfer.PassengerCount}</p>
<p>Please confirm the transfer by clicking on the following link:</p>
<p><a href=""https://{Setting.BaseUrl}/mytransfers/{createdTransfer.Id}"">Confirm Transfer</a></p>
<p><a href=""{Setting.BaseUrl}/mytransfers/{createdTransfer.Id}"">Confirm Transfer</a></p>
<p>If you did not request this transfer, please disregard this email.</p>
<p>Thank you,<br/>Tour I Am team</p>
</body>